xamarin-macios/tools/linker
Sebastien Pouliot a20d417bf7
[dotnet][linker] Enable the sealer optimization (#12009)
when (by default)
* the interpreter is not enabled (since new code might subclass or override the members analyzed at build time)
* building for release

Reverts c56b893b68
Fix https://github.com/xamarin/xamarin-macios/issues/9573

Notes

* Even if possible (in metadata) there is no point in setting `final` on
a method if we remove `virtual`. This match ILLink version of the sealer
and makes the same test pass on both.

* Don't apply optimization on non-AOT builds, e.g. simulators, since some
features (like XML serialization) checks for
`RuntimeFeature.IsDynamicCodeSupported` and that requires some types
to be subclassed thru SRE
2021-08-10 16:01:30 -04:00
..
MonoTouch.Tuner [dotnet][linker] Enable the sealer optimization (#12009) 2021-08-10 16:01:30 -04:00
ApplyPreserveAttribute.cs Fixes for .NET 6 linker (#11739) 2021-06-14 20:10:29 -04:00
BaseProfile.cs [tools] Remove BaseProfile.GetNamespace, it's not used. (#9533) 2020-08-28 09:57:27 +02:00
ChangeLog Build mmp. 2016-04-24 14:47:26 -04:00
CoreHttpMessageHandler.cs [linker] Stop passing data to the CoreHttpMessageHandler step using a constructor. 2020-05-07 15:51:38 +02:00
CoreMarkStep.cs [linker] Fix infinite queue found with nullability PR (#8337) 2020-04-10 10:59:01 -04:00
CoreOptimizeGeneratedCode.cs [dotnet][linker] Remove unused backing fields (#12001) 2021-07-21 09:03:25 -04:00
CorePreserveCode.cs [linker] Make the corlib name dynamic. (#8499) 2020-05-04 18:31:48 +02:00
CoreRemoveAttributes.cs [linker] Always create the [Core]RemoveAttributes steps, and instead detect if it should be active using the LinkContext field. 2020-05-07 15:51:38 +02:00
CoreRemoveSecurity.cs [linker] Always create the CoreRemoveSecurity step, and instead detect if it should be active using the LinkContext field. 2020-05-07 15:51:38 +02:00
CoreSweepStep.cs [linker] Find linked away interfaces when resolving removed interfaces. Fixes #3513. (#3515) (#3524) 2018-02-19 15:24:40 +01:00
CoreTypeMapStep.cs Fixes for .NET 6 linker (#11739) 2021-06-14 20:10:29 -04:00
CustomSymbolWriter.cs [mtouch] Use a custom symbol writer to ensure only pdb file names are written to assemblies. 2019-02-13 14:59:34 +01:00
ExceptionalSubStep.cs [dotnet-linker] Catch any exceptions from our custom steps and show them using our error reporting logic. (#9954) 2020-10-26 20:16:03 +01:00
MarkNSObjects.cs Fixes for .NET 6 linker (#11739) 2021-06-14 20:10:29 -04:00
MobileApplyPreserveAttribute.cs [dotnet-linker] Add ApplyPreserveAttribute into the pipeline. (#9529) 2020-08-27 18:30:19 +02:00
MobileExtensions.cs [Localization] mtouch/mmp C# (#7710) 2020-01-31 15:02:52 -05:00
MobileMarkStep.cs [linker] Remove code to deal with ExportedTypes (#8632) 2020-05-21 08:44:48 -04:00
MobileProfile.cs Bump mono to 2019-08@528103728fc2aedb7b6062e11255d39a0ed3f31c to add missing NS2.1 APIs (#7147) 2019-10-02 07:59:39 -04:00
MobileRemoveAttributes.cs [linker] Remove internal [NullablePublicOnly] attribute from apps (#8568) 2020-05-11 19:39:43 -04:00
MobileResolveMainAssemblyStep.cs Bump to mono:2017-12 (#3421) 2018-02-14 11:08:01 -05:00
MobileSweepStep.cs [linker] Remove code to deal with ExportedTypes (#8632) 2020-05-21 08:44:48 -04:00
ObjCExtensions.cs [CHIP] Add support for Xcode13 beta2. (#12025) 2021-06-30 20:18:41 -04:00
README.linker Build mmp. 2016-04-24 14:47:26 -04:00
RegistrarRemovalTrackingStep.cs Update to new linker custom steps API (#11374) 2021-05-12 12:26:54 -04:00
RemoveRejectedTypesStep.cs [tools] Renumber RemoveRejectedTypesStep's error code base to match other ExceptionalSubStep subclasses. (#9955) 2020-10-26 09:58:41 +01:00
RemoveSelectors.cs [macos][mmp] Fix RemoveSelectors when generics are used, Fix #55693 (#2104) 2017-05-18 08:45:23 -04:00
RemoveUserResourcesSubStep.cs [dotnet-linker] Add the RemoveUserResources sub step. (#10456) 2021-01-19 14:06:25 +01:00
ScanTypeReferenceStep.cs [linker] Fix warnings on type references that still exists. Fix #8814 (#9600) 2020-09-09 03:04:35 -04:00

README.linker

README.linker

Q: Why some stuff is not linked out ?

A: In most case this is because:
	a) the BCL uses it internally
	b) the mono runtime depends on the type, methods, class layout


= mscorlib.dll =

System.Security.PermissionSet
	* Assembly has (3) fields of that type
	* mscorlib.xml preserve all fields from Assembly (object-internals.h)
	* code is "stubified" by the linker
System.Security.Policy.ApplicationTrust: 
	* Used as a field in AppDomainSetup;
	* Field also exists in unmanaged code (domain-internals.h);
	* mscorlib.xml preserve all fields from AppDomainSetup
	* only the default .ctor remains and is stubified by the linker
System.Security.Policy.Evidence
	* Used by AppDomain.Load[Assembly]
	* Used by Assembly.LoadWithPartialName overloads
	* code is "stubified" by the linker


= System.dll =

System.Text.RegularExpressions.*
	* Included because there is 2 regex in UriParser