xamarin-macios/tools/mtouch/mtouch.csproj

395 строки
17 KiB
XML
Исходник Обычный вид История

2016-04-21 15:58:45 +03:00
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{A737EFCC-4348-4EB1-9C14-4FDC0975388D}</ProjectGuid>
<OutputType>Exe</OutputType>
<AssemblyName>mtouch</AssemblyName>
<RootNamespace>mtouch</RootNamespace>
2017-01-24 16:59:05 +03:00
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
2016-04-21 15:58:45 +03:00
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>True</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>False</Optimize>
<OutputPath>bin\Debug</OutputPath>
2016-04-27 22:36:08 +03:00
<DefineConstants>MONOTOUCH;MTOUCH;DEV</DefineConstants>
2016-04-21 15:58:45 +03:00
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>False</ConsolePause>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<NoWarn>436</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>none</DebugType>
<Optimize>False</Optimize>
<OutputPath>bin\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
2016-04-27 22:36:08 +03:00
<DefineConstants>MONOTOUCH;MTOUCH;DEV</DefineConstants>
2016-04-21 15:58:45 +03:00
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
2016-04-21 15:58:45 +03:00
<ItemGroup>
2016-04-25 14:25:30 +03:00
<Compile Include="Application.cs" />
<Compile Include="Assembly.cs" />
2016-04-21 15:58:45 +03:00
<Compile Include="AssemblyResolver.cs" />
2016-04-25 14:25:30 +03:00
<Compile Include="BitcodeConverter.cs" />
<Compile Include="error.cs" />
2016-04-21 15:58:45 +03:00
<Compile Include="mtouch.cs" />
2016-04-25 14:25:30 +03:00
<Compile Include="SdkVersions.cs" />
<Compile Include="Stripper.cs" />
<Compile Include="Target.cs" />
<Compile Include="Tuning.cs" />
2016-04-21 15:58:45 +03:00
<Compile Include="..\..\external\mono\mcs\class\Mono.Options\Mono.Options\Options.cs">
<Link>Options.cs</Link>
</Compile>
<Compile Include="..\..\src\build\ios\Constants.cs">
2016-04-25 14:25:30 +03:00
<Link>external\Constants.cs</Link>
2016-04-21 15:58:45 +03:00
</Compile>
<Compile Include="..\common\cache.cs">
2016-04-25 14:25:30 +03:00
<Link>external\cache.cs</Link>
2016-04-21 15:58:45 +03:00
</Compile>
<Compile Include="..\linker\MonoTouch.Tuner\Extensions.cs">
<Link>MonoTouch.Tuner\Extensions.cs</Link>
</Compile>
<Compile Include="..\linker\MonoTouch.Tuner\MetadataReducerSubStep.cs">
<Link>MonoTouch.Tuner\MetadataReducerSubStep.cs</Link>
</Compile>
<Compile Include="..\linker\MonoTouch.Tuner\MonoTouchMarkStep.cs">
<Link>MonoTouch.Tuner\MonoTouchMarkStep.cs</Link>
</Compile>
<Compile Include="..\linker\MonoTouch.Tuner\MonoTouchProfile.cs">
<Link>MonoTouch.Tuner\MonoTouchProfile.cs</Link>
</Compile>
<Compile Include="..\linker\MonoTouch.Tuner\OptimizeGeneratedCodeSubStep.cs">
<Link>MonoTouch.Tuner\OptimizeGeneratedCodeSubStep.cs</Link>
</Compile>
<Compile Include="..\linker\MonoTouch.Tuner\PreserveCode.cs">
<Link>MonoTouch.Tuner\PreserveCode.cs</Link>
</Compile>
<Compile Include="..\linker\MonoTouch.Tuner\RemoveAttributes.cs">
<Link>MonoTouch.Tuner\RemoveAttributes.cs</Link>
</Compile>
<Compile Include="..\linker\MonoTouch.Tuner\RemoveCode.cs">
<Link>MonoTouch.Tuner\RemoveCode.cs</Link>
</Compile>
<Compile Include="..\linker\MonoTouch.Tuner\MonoTouchTypeMap.cs">
<Link>MonoTouch.Tuner\MonoTouchTypeMap.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker\XApiReader.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker\XApiReader.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker\Annotations.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker\Annotations.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker\LinkContext.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker\LinkContext.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker\Pipeline.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker\Pipeline.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker\MethodReferenceExtensions.cs">
2017-09-05 21:48:09 +03:00
<Link>Mono.Linker\MethodReferenceExtensions.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker\TypeReferenceExtensions.cs">
2017-09-05 21:48:09 +03:00
<Link>Mono.Linker\TypeReferenceExtensions.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker\AssemblyResolver.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker\AssemblyResolver.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker\IXApiVisitor.cs">
2016-04-25 14:25:30 +03:00
<Link>Mono.Linker\IXApiVisitor.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker\I18nAssemblies.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker\I18nAssemblies.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker\AssemblyAction.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker\AssemblyAction.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker\TypePreserve.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker\TypePreserve.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker\LoadException.cs">
[Do not merge yet] Update to mono 2017-04 branch (#1960) * Update to mono 2017-04 branch * Patch from Zoltan to fix build error with CppSharp.CppParser.dll * Include new linker files in Makefile, based on mareks commit * [msbuild] Fix running bgen for Xamarin.Mac. bgen must be executed with the system mono, not bmac-mobile-mono, and without the MONO_PATH variable set. * System.Data tests should act as if they are running on mobile profile * Add --runtime=mobile to mono flags in Modern * Move runtime launcher options up * System.Data tests should use Mobile profile (mac fix) * Bump 2017-04 to pick up AOT and assembly resolution fixes * Build fixes for netstandard.dll and System.Drawing.Primitives.dll The new handling went in with https://github.com/mono/mono/pull/4501. I also noticed that WatchOS was missing a target for System.Drawing.Primitives.dll, so I added that. * Add netstandard.dll to 2.1/Facades and System.Drawing.Primitives.dll to WatchOS * Fix 2.1/Facades/netstandard.dll build * Fix the netstandard targets * Bump mono to latest 2017-04 commit * [xharness] Fix adding defines to csproj by correctly detecting existing defines. * Bump mono to latest 2017-04 commit * [mtouch] Update csproj with new files. * [mtouch] Improve reporting for MarkExceptions from the linker. * Bump mono to latest 2017-04 commit * Bump mono to pick up latest 2017-04 branch commit (Fixes #55436) Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=55436 * Add a missing Makefile dependency * Chris Hamons patch to apply --runtime=mobile as necessary at AOT time (It is currently being applied for some configurations at runtime only) * Bump system mono * Bump mono for assembly loader changes * Bump system mono * Update assemblies list as some where moved to facades https://github.com/mono/mono/commit/6ca5ec442b494bed8cfb44258c1c73c091ba3122 https://github.com/mono/mono/commit/c38e4d9220b16488e6f8f9e1f05aed4a8af16e62 * Bump mono to latest 2017-04 commit * Add another new facade * Bump mono to tip of 2017-04. * Bump mono to tip of 2017-04. * [tests][mtouch] Adjust tests to cope with fewer assemblies being included in linked apps. Fixes #56307 and #56308. System.dll is now completely linked away unless the app actually uses any System.dll API. This is the change that caused this to change: https://github.com/mono/mono/commit/4960d5d2a28a08476ee4239e1746f04afce41c13 Previously the following types would always be kept by the linker: ``` $ monodis --typedef System.dll Typedef Table 1: (null) (flist=1, mlist=1, flags=0x0, extends=0x0) 2: ObjCRuntime.INativeObject (flist=1, mlist=1, flags=0xa0, extends=0x0) 3: Mono.Net.CFObject (flist=1, mlist=2, flags=0x100000, extends=0x5) 4: Mono.Net.CFArray (flist=4, mlist=19, flags=0x100, extends=0xc) 5: Mono.Net.CFNumber (flist=5, mlist=32, flags=0x100100, extends=0xc) 6: Mono.Net.CFRange (flist=5, mlist=41, flags=0x100108, extends=0x25) 7: Mono.Net.CFString (flist=7, mlist=42, flags=0x100100, extends=0xc) 8: Mono.Net.CFData (flist=8, mlist=53, flags=0x100100, extends=0xc) 9: Mono.Net.CFDictionary (flist=8, mlist=63, flags=0x0, extends=0xc) 10: Mono.Net.CFMutableDictionary (flist=10, mlist=75, flags=0x100100, extends=0x24) 11: Mono.Net.CFUrl (flist=10, mlist=80, flags=0x100100, extends=0xc) 12: Mono.Net.CFRunLoop (flist=10, mlist=83, flags=0x100100, extends=0xc) 13: Mono.Net.CFBoolean (flist=10, mlist=94, flags=0x100, extends=0x5) 14: Mono.AppleTls.SecCertificate (flist=13, mlist=106, flags=0x100100, extends=0x5) 15: Mono.AppleTls.SecIdentity (flist=14, mlist=122, flags=0x100, extends=0x5) 16: Mono.AppleTls.SecIdentity/ImportOptions (flist=19, mlist=134, flags=0x100105, extends=0x5) 17: Mono.AppleTls.SecKey (flist=19, mlist=134, flags=0x100100, extends=0x5) 18: Mono.AppleTls.SecStatusCode (flist=21, mlist=141, flags=0x100, extends=0x69) 19: Mono.AppleTls.SecTrustResult (flist=395, mlist=141, flags=0x100, extends=0x69) 20: Mono.AppleTls.SecImportExport (flist=404, mlist=141, flags=0x100100, extends=0x5) 21: Mono.AppleTls.SecImportExport/<>c (flist=404, mlist=144, flags=0x102103, extends=0x5) 22: Mono.AppleTls.SecPolicy (flist=406, mlist=147, flags=0x100100, extends=0x5) 23: Mono.AppleTls.SecTrust (flist=407, mlist=154, flags=0x100100, extends=0x5) 24: System.Security.Cryptography.OidGroup (flist=408, mlist=174, flags=0x101, extends=0x69) 25: System.Security.Cryptography.Oid (flist=420, mlist=174, flags=0x100101, extends=0x5) 26: System.Security.Cryptography.CAPI (flist=423, mlist=176, flags=0x100180, extends=0x5) 27: System.Security.Cryptography.AsnEncodedData (flist=423, mlist=178, flags=0x100101, extends=0x5) 28: System.Security.Cryptography.X509Certificates.X509Utils (flist=424, mlist=179, flags=0x100100, extends=0x5) 29: System.Security.Cryptography.X509Certificates.PublicKey (flist=424, mlist=181, flags=0x100101, extends=0x5) 30: System.Security.Cryptography.X509Certificates.X509Certificate2 (flist=429, mlist=188, flags=0x102101, extends=0x51) 31: System.Security.Cryptography.X509Certificates.X509Certificate2Impl (flist=431, mlist=204, flags=0x100080, extends=0x55) 32: System.Security.Cryptography.X509Certificates.X509CertificateCollection (flist=431, mlist=209, flags=0x102101, extends=0x6d) 33: System.Security.Cryptography.X509Certificates.X509CertificateCollection/X509CertificateEnumerator (flist=431, mlist=212, flags=0x100102, extends=0x5) 34: System.Security.Cryptography.X509Certificates.X509Helper2 (flist=432, mlist=217, flags=0x100180, extends=0x5) 35: <PrivateImplementationDetails> (flist=432, mlist=218, flags=0x100, extends=0x5) 36: <PrivateImplementationDetails>/__StaticArrayInitTypeSize=9 (flist=433, mlist=219, flags=0x113, extends=0x25) ``` Some of the above types from System.dll implemented ObjCRuntime.INativeObject (from System.dll), which our linker detected as implementing ObjCRuntime.INativeObject (from Xamarin.iOS.dll), so these types were treated as custom NSObject subclasses, and the MarkNSObjects linker step would mark them (which would in turn cause all the other types in the list to be marked). With that change, these types now implement ObjCRuntimeInternal.INativeObject, and the linker does not treat them as custom NSObject subclasses anymore. I think the new behavior is correct: these types do not actually inherit from the real NSObject/INativeObject, so the linker should not treat them as such. This may run into different bugs because the linker might now remove more stuff than before, but that would be a different issue. This means that the fix is to modify these tests accordingly. https://bugzilla.xamarin.com/show_bug.cgi?id=56307 https://bugzilla.xamarin.com/show_bug.cgi?id=56308 * Bump mono to latest. * Fix merge conflict that was missed * [mtouch] Renumber new error which clashes with an existing error number in master.
2017-05-29 19:39:29 +03:00
<Link>Mono.Linker\LoadException.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker\MarkException.cs">
[Do not merge yet] Update to mono 2017-04 branch (#1960) * Update to mono 2017-04 branch * Patch from Zoltan to fix build error with CppSharp.CppParser.dll * Include new linker files in Makefile, based on mareks commit * [msbuild] Fix running bgen for Xamarin.Mac. bgen must be executed with the system mono, not bmac-mobile-mono, and without the MONO_PATH variable set. * System.Data tests should act as if they are running on mobile profile * Add --runtime=mobile to mono flags in Modern * Move runtime launcher options up * System.Data tests should use Mobile profile (mac fix) * Bump 2017-04 to pick up AOT and assembly resolution fixes * Build fixes for netstandard.dll and System.Drawing.Primitives.dll The new handling went in with https://github.com/mono/mono/pull/4501. I also noticed that WatchOS was missing a target for System.Drawing.Primitives.dll, so I added that. * Add netstandard.dll to 2.1/Facades and System.Drawing.Primitives.dll to WatchOS * Fix 2.1/Facades/netstandard.dll build * Fix the netstandard targets * Bump mono to latest 2017-04 commit * [xharness] Fix adding defines to csproj by correctly detecting existing defines. * Bump mono to latest 2017-04 commit * [mtouch] Update csproj with new files. * [mtouch] Improve reporting for MarkExceptions from the linker. * Bump mono to latest 2017-04 commit * Bump mono to pick up latest 2017-04 branch commit (Fixes #55436) Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=55436 * Add a missing Makefile dependency * Chris Hamons patch to apply --runtime=mobile as necessary at AOT time (It is currently being applied for some configurations at runtime only) * Bump system mono * Bump mono for assembly loader changes * Bump system mono * Update assemblies list as some where moved to facades https://github.com/mono/mono/commit/6ca5ec442b494bed8cfb44258c1c73c091ba3122 https://github.com/mono/mono/commit/c38e4d9220b16488e6f8f9e1f05aed4a8af16e62 * Bump mono to latest 2017-04 commit * Add another new facade * Bump mono to tip of 2017-04. * Bump mono to tip of 2017-04. * [tests][mtouch] Adjust tests to cope with fewer assemblies being included in linked apps. Fixes #56307 and #56308. System.dll is now completely linked away unless the app actually uses any System.dll API. This is the change that caused this to change: https://github.com/mono/mono/commit/4960d5d2a28a08476ee4239e1746f04afce41c13 Previously the following types would always be kept by the linker: ``` $ monodis --typedef System.dll Typedef Table 1: (null) (flist=1, mlist=1, flags=0x0, extends=0x0) 2: ObjCRuntime.INativeObject (flist=1, mlist=1, flags=0xa0, extends=0x0) 3: Mono.Net.CFObject (flist=1, mlist=2, flags=0x100000, extends=0x5) 4: Mono.Net.CFArray (flist=4, mlist=19, flags=0x100, extends=0xc) 5: Mono.Net.CFNumber (flist=5, mlist=32, flags=0x100100, extends=0xc) 6: Mono.Net.CFRange (flist=5, mlist=41, flags=0x100108, extends=0x25) 7: Mono.Net.CFString (flist=7, mlist=42, flags=0x100100, extends=0xc) 8: Mono.Net.CFData (flist=8, mlist=53, flags=0x100100, extends=0xc) 9: Mono.Net.CFDictionary (flist=8, mlist=63, flags=0x0, extends=0xc) 10: Mono.Net.CFMutableDictionary (flist=10, mlist=75, flags=0x100100, extends=0x24) 11: Mono.Net.CFUrl (flist=10, mlist=80, flags=0x100100, extends=0xc) 12: Mono.Net.CFRunLoop (flist=10, mlist=83, flags=0x100100, extends=0xc) 13: Mono.Net.CFBoolean (flist=10, mlist=94, flags=0x100, extends=0x5) 14: Mono.AppleTls.SecCertificate (flist=13, mlist=106, flags=0x100100, extends=0x5) 15: Mono.AppleTls.SecIdentity (flist=14, mlist=122, flags=0x100, extends=0x5) 16: Mono.AppleTls.SecIdentity/ImportOptions (flist=19, mlist=134, flags=0x100105, extends=0x5) 17: Mono.AppleTls.SecKey (flist=19, mlist=134, flags=0x100100, extends=0x5) 18: Mono.AppleTls.SecStatusCode (flist=21, mlist=141, flags=0x100, extends=0x69) 19: Mono.AppleTls.SecTrustResult (flist=395, mlist=141, flags=0x100, extends=0x69) 20: Mono.AppleTls.SecImportExport (flist=404, mlist=141, flags=0x100100, extends=0x5) 21: Mono.AppleTls.SecImportExport/<>c (flist=404, mlist=144, flags=0x102103, extends=0x5) 22: Mono.AppleTls.SecPolicy (flist=406, mlist=147, flags=0x100100, extends=0x5) 23: Mono.AppleTls.SecTrust (flist=407, mlist=154, flags=0x100100, extends=0x5) 24: System.Security.Cryptography.OidGroup (flist=408, mlist=174, flags=0x101, extends=0x69) 25: System.Security.Cryptography.Oid (flist=420, mlist=174, flags=0x100101, extends=0x5) 26: System.Security.Cryptography.CAPI (flist=423, mlist=176, flags=0x100180, extends=0x5) 27: System.Security.Cryptography.AsnEncodedData (flist=423, mlist=178, flags=0x100101, extends=0x5) 28: System.Security.Cryptography.X509Certificates.X509Utils (flist=424, mlist=179, flags=0x100100, extends=0x5) 29: System.Security.Cryptography.X509Certificates.PublicKey (flist=424, mlist=181, flags=0x100101, extends=0x5) 30: System.Security.Cryptography.X509Certificates.X509Certificate2 (flist=429, mlist=188, flags=0x102101, extends=0x51) 31: System.Security.Cryptography.X509Certificates.X509Certificate2Impl (flist=431, mlist=204, flags=0x100080, extends=0x55) 32: System.Security.Cryptography.X509Certificates.X509CertificateCollection (flist=431, mlist=209, flags=0x102101, extends=0x6d) 33: System.Security.Cryptography.X509Certificates.X509CertificateCollection/X509CertificateEnumerator (flist=431, mlist=212, flags=0x100102, extends=0x5) 34: System.Security.Cryptography.X509Certificates.X509Helper2 (flist=432, mlist=217, flags=0x100180, extends=0x5) 35: <PrivateImplementationDetails> (flist=432, mlist=218, flags=0x100, extends=0x5) 36: <PrivateImplementationDetails>/__StaticArrayInitTypeSize=9 (flist=433, mlist=219, flags=0x113, extends=0x25) ``` Some of the above types from System.dll implemented ObjCRuntime.INativeObject (from System.dll), which our linker detected as implementing ObjCRuntime.INativeObject (from Xamarin.iOS.dll), so these types were treated as custom NSObject subclasses, and the MarkNSObjects linker step would mark them (which would in turn cause all the other types in the list to be marked). With that change, these types now implement ObjCRuntimeInternal.INativeObject, and the linker does not treat them as custom NSObject subclasses anymore. I think the new behavior is correct: these types do not actually inherit from the real NSObject/INativeObject, so the linker should not treat them as such. This may run into different bugs because the linker might now remove more stuff than before, but that would be a different issue. This means that the fix is to modify these tests accordingly. https://bugzilla.xamarin.com/show_bug.cgi?id=56307 https://bugzilla.xamarin.com/show_bug.cgi?id=56308 * Bump mono to latest. * Fix merge conflict that was missed * [mtouch] Renumber new error which clashes with an existing error number in master.
2017-05-29 19:39:29 +03:00
<Link>Mono.Linker\MarkException.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker\MethodAction.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker\MethodAction.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker.Steps\BaseStep.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker.Steps\BaseStep.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker.Steps\BlacklistStep.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker.Steps\BlacklistStep.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker.Steps\CleanStep.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker.Steps\CleanStep.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker.Steps\IStep.cs">
2016-04-25 14:25:30 +03:00
<Link>Mono.Linker.Steps\IStep.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker.Steps\LoadI18nAssemblies.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker.Steps\LoadI18nAssemblies.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker.Steps\LoadReferencesStep.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker.Steps\LoadReferencesStep.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker.Steps\MarkStep.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker.Steps\MarkStep.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker.Steps\OutputStep.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker.Steps\OutputStep.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker.Steps\ResolveFromAssemblyStep.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker.Steps\ResolveFromAssemblyStep.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker.Steps\ResolveFromXApiStep.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker.Steps\ResolveFromXApiStep.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker.Steps\ResolveFromXmlStep.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker.Steps\ResolveFromXmlStep.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker.Steps\ResolveStep.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker.Steps\ResolveStep.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker.Steps\SweepStep.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker.Steps\SweepStep.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\linker\Mono.Linker.Steps\TypeMapStep.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Linker.Steps\TypeMapStep.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\tuner\Mono.Tuner\ApplyPreserveAttributeBase.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Tuner\ApplyPreserveAttributeBase.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\tuner\Mono.Tuner\RemoveAttributesBase.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Tuner\RemoveAttributesBase.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\tuner\Mono.Tuner\PreserveSoapHttpClients.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Tuner\PreserveSoapHttpClients.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\tuner\Mono.Tuner\Profile.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Tuner\Profile.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\tuner\Mono.Tuner\CustomizeActions.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Tuner\CustomizeActions.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\tuner\Mono.Tuner\RemoveResources.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Tuner\RemoveResources.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\tuner\Mono.Tuner\RemoveSecurity.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Tuner\RemoveSecurity.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\tuner\Mono.Tuner\Extensions.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Tuner\Extensions.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\tuner\Mono.Tuner\FixModuleFlags.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Tuner\FixModuleFlags.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\tuner\Mono.Tuner\Dispatcher.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Tuner\Dispatcher.cs</Link>
</Compile>
<Compile Include="..\linker\MonoTouch.Tuner\MonoTouchSweepStep.cs">
<Link>MonoTouch.Tuner\MonoTouchSweepStep.cs</Link>
</Compile>
<Compile Include="..\linker\MonoTouch.Tuner\ProcessExportedFields.cs">
<Link>MonoTouch.Tuner\ProcessExportedFields.cs</Link>
</Compile>
<Compile Include="..\..\external\mono\external\linker\tuner\Mono.Tuner\CecilRocks.cs">
2016-04-21 15:58:45 +03:00
<Link>Mono.Tuner\CecilRocks.cs</Link>
</Compile>
<Compile Include="..\linker\MobileProfile.cs">
<Link>Xamarin.Linker\MobileProfile.cs</Link>
</Compile>
<Compile Include="..\linker\BaseProfile.cs">
<Link>Xamarin.Linker\BaseProfile.cs</Link>
</Compile>
<Compile Include="..\linker\MarkNSObjects.cs">
<Link>Xamarin.Linker\MarkNSObjects.cs</Link>
</Compile>
<Compile Include="..\linker\ObjCExtensions.cs">
<Link>Xamarin.Linker\ObjCExtensions.cs</Link>
</Compile>
<Compile Include="..\linker\ApplyPreserveAttribute.cs">
<Link>Xamarin.Linker\ApplyPreserveAttribute.cs</Link>
</Compile>
<Compile Include="..\linker\CoreMarkStep.cs">
<Link>Xamarin.Linker\CoreMarkStep.cs</Link>
</Compile>
<Compile Include="..\linker\CoreRemoveAttributes.cs">
<Link>Xamarin.Linker\CoreRemoveAttributes.cs</Link>
</Compile>
<Compile Include="..\linker\MobileExtensions.cs">
<Link>Xamarin.Linker\MobileExtensions.cs</Link>
</Compile>
<Compile Include="..\linker\MobileMarkStep.cs">
<Link>Xamarin.Linker\MobileMarkStep.cs</Link>
</Compile>
<Compile Include="..\linker\MobileRemoveAttributes.cs">
<Link>Xamarin.Linker\MobileRemoveAttributes.cs</Link>
</Compile>
<Compile Include="..\linker\CorePreserveCode.cs">
<Link>Xamarin.Linker\CorePreserveCode.cs</Link>
</Compile>
<Compile Include="..\linker\MobileSweepStep.cs">
<Link>Xamarin.Linker\MobileSweepStep.cs</Link>
</Compile>
<Compile Include="..\linker\CoreOptimizeGeneratedCode.cs">
<Link>Xamarin.Linker\CoreOptimizeGeneratedCode.cs</Link>
</Compile>
<Compile Include="..\..\src\ObjCRuntime\NativeAttribute.cs">
<Link>external\maccore\NativeAttribute.cs</Link>
</Compile>
<Compile Include="..\linker\CoreRemoveSecurity.cs">
<Link>Xamarin.Linker\CoreRemoveSecurity.cs</Link>
</Compile>
<Compile Include="..\linker\CoreHttpMessageHandler.cs">
<Link>Xamarin.Linker\CoreHttpMessageHandler.cs</Link>
</Compile>
<Compile Include="..\linker\MobileResolveMainAssemblyStep.cs">
<Link>Xamarin.Linker\MobileResolveMainAssemblyStep.cs</Link>
</Compile>
<Compile Include="..\common\Driver.cs">
2016-04-25 14:25:30 +03:00
<Link>external\Driver.cs</Link>
2016-04-21 15:58:45 +03:00
</Compile>
<Compile Include="..\common\TargetFramework.cs">
2016-04-25 14:25:30 +03:00
<Link>external\TargetFramework.cs</Link>
2016-04-21 15:58:45 +03:00
</Compile>
<Compile Include="..\common\StaticRegistrar.cs">
2016-04-25 14:25:30 +03:00
<Link>external\StaticRegistrar.cs</Link>
2016-04-21 15:58:45 +03:00
</Compile>
<Compile Include="..\common\MachO.cs">
2016-04-25 14:25:30 +03:00
<Link>external\MachO.cs</Link>
2016-04-21 15:58:45 +03:00
</Compile>
<Compile Include="..\common\Application.cs">
2016-04-25 14:25:30 +03:00
<Link>external\Application.cs</Link>
2016-04-21 15:58:45 +03:00
</Compile>
<Compile Include="..\common\Assembly.cs">
2016-04-25 14:25:30 +03:00
<Link>external\Assembly.cs</Link>
2016-04-21 15:58:45 +03:00
</Compile>
<Compile Include="..\common\Target.cs">
2016-04-25 14:25:30 +03:00
<Link>external\Target.cs</Link>
2016-04-21 15:58:45 +03:00
</Compile>
<Compile Include="..\common\DerivedLinkContext.cs">
<Link>external\DerivedLinkContext.cs</Link>
</Compile>
2016-04-21 15:58:45 +03:00
<Compile Include="..\common\Frameworks.cs">
2016-04-25 14:25:30 +03:00
<Link>external\Frameworks.cs</Link>
2016-04-21 15:58:45 +03:00
</Compile>
<Compile Include="..\common\CompilerFlags.cs">
2016-04-25 14:25:30 +03:00
<Link>external\CompilerFlags.cs</Link>
2016-04-21 15:58:45 +03:00
</Compile>
<Compile Include="..\..\src\ObjCRuntime\RuntimeOptions.cs">
2016-04-25 14:25:30 +03:00
<Link>external\RuntimeOptions.cs</Link>
2016-04-21 15:58:45 +03:00
</Compile>
<Compile Include="..\..\src\ObjCRuntime\PlatformAvailability2.cs">
2016-04-25 14:25:30 +03:00
<Link>external\PlatformAvailability2.cs</Link>
2016-04-21 15:58:45 +03:00
</Compile>
<Compile Include="..\..\src\ObjCRuntime\Registrar.core.cs">
2016-04-25 14:25:30 +03:00
<Link>external\Registrar.core.cs</Link>
2016-04-21 15:58:45 +03:00
</Compile>
<Compile Include="..\linker\MonoTouch.Tuner\SealerSubStep.cs">
<Link>MonoTouch.Tuner\SealerSubStep.cs</Link>
</Compile>
<Compile Include="..\linker\MonoTouch.Tuner\ListExportedSymbols.cs">
<Link>MonoTouch.Tuner\ListExportedSymbols.cs</Link>
</Compile>
<Compile Include="..\..\src\ObjCRuntime\ArgumentSemantic.cs">
<Link>external\maccore\ArgumentSemantic.cs</Link>
</Compile>
<Compile Include="..\..\src\Foundation\ExportAttribute.cs">
<Link>external\maccore\ExportAttribute.cs</Link>
</Compile>
<Compile Include="..\..\src\Foundation\ConnectAttribute.cs">
<Link>external\maccore\ConnectAttribute.cs</Link>
</Compile>
<Compile Include="..\..\src\ObjCRuntime\LinkWithAttribute.cs">
<Link>external\maccore\LinkWithAttribute.cs</Link>
</Compile>
<Compile Include="..\..\external\Xamarin.MacDev\Xamarin.MacDev\PListObject.cs">
<Link>external\maccore\PListObject.cs</Link>
</Compile>
2016-04-25 14:25:30 +03:00
<Compile Include="..\..\src\ObjCRuntime\Registrar.cs">
<Link>external\Registrar.cs</Link>
</Compile>
<Compile Include="..\..\src\ObjCRuntime\ErrorHelper.cs">
<Link>external\ErrorHelper.cs</Link>
</Compile>
<Compile Include="..\..\src\ObjCRuntime\ExceptionMode.cs">
<Link>external\ExceptionMode.cs</Link>
</Compile>
<Compile Include="..\common\PInvokeWrapperGenerator.cs">
<Link>common\PInvokeWrapperGenerator.cs</Link>
</Compile>
[mtouch][linker] Provide a more specific error code when OptimizeGeneratedCodeSubStep fails (#903) The MT2001 error is a general, something went bad, in the linker code base. The stack trace is often enough to track down issues but in some cases it would be easier to ask customers for a specific assembly (rather than their complete project) to investigate an issue. Example: error MT2103: Binding Optimizer failed processing `System.Void GoogleConversionTracking.Unified.GoogleConversionPing::.ctor()`. --- inner exception System.NullReferenceException: Object reference not set to an instance of an object at MonoTouch.Tuner.OptimizeGeneratedCodeSubStep.ProcessIsDirectBinding (Mono.Cecil.MethodDefinition caller, Mono.Cecil.Cil.Instruction ins) [0x00026] in /Users/poupou/git/xamarin/xamarin-macios/tools/linker/MonoTouch.Tuner/OptimizeGeneratedCodeSubStep.cs:264 at MonoTouch.Tuner.OptimizeGeneratedCodeSubStep.ProcessCalls (Mono.Cecil.MethodDefinition caller, Int32 i) [0x00337] in /Users/poupou/git/xamarin/xamarin-macios/tools/linker/MonoTouch.Tuner/OptimizeGeneratedCodeSubStep.cs:197 at MonoTouch.Tuner.OptimizeGeneratedCodeSubStep.Process (Mono.Cecil.MethodDefinition method) [0x0007b] in /Users/poupou/git/xamarin/xamarin-macios/tools/linker/MonoTouch.Tuner/OptimizeGeneratedCodeSubStep.cs:81 at Xamarin.Linker.StateSubStep.ProcessMethod (Mono.Cecil.MethodDefinition method) [0x00004] in /Users/poupou/git/xamarin/xamarin-macios/tools/linker/CoreOptimizeGeneratedCode.cs:48 --- at Xamarin.Linker.StateSubStep.ProcessMethod (Mono.Cecil.MethodDefinition method) [0x00014] in /Users/poupou/git/xamarin/xamarin-macios/tools/linker/CoreOptimizeGeneratedCode.cs:50 at Mono.Tuner.SubStepDispatcher.DispatchMethod (Mono.Cecil.MethodDefinition method) [0x0001d] in /Users/poupou/git/xamarin/xamarin-macios/external/mono/mcs/tools/tuner/Mono.Tuner/Dispatcher.cs:215 at Mono.Tuner.SubStepDispatcher.BrowseMethods (ICollection methods) [0x0001c] in /Users/poupou/git/xamarin/xamarin-macios/external/mono/mcs/tools/tuner/Mono.Tuner/Dispatcher.cs:167 at Mono.Tuner.SubStepDispatcher.BrowseTypes (ICollection types) [0x0006b] in /Users/poupou/git/xamarin/xamarin-macios/external/mono/mcs/tools/tuner/Mono.Tuner/Dispatcher.cs:145 at Mono.Tuner.SubStepDispatcher.BrowseAssemblies (IEnumerable`1 assemblies) [0x00050] in /Users/poupou/git/xamarin/xamarin-macios/external/mono/mcs/tools/tuner/Mono.Tuner/Dispatcher.cs:123 at Mono.Tuner.SubStepDispatcher.Process (Mono.Linker.LinkContext context) [0x0000f] in /Users/poupou/git/xamarin/xamarin-macios/external/mono/mcs/tools/tuner/Mono.Tuner/Dispatcher.cs:104 at Mono.Linker.Pipeline.Process (Mono.Linker.LinkContext context) [0x00027] in /Users/poupou/git/xamarin/xamarin-macios/external/mono/mcs/tools/linker/Mono.Linker/Pipeline.cs:118 at MonoTouch.Tuner.Linker.Process (MonoTouch.Tuner.LinkerOptions options, MonoTouch.Tuner.MonoTouchLinkContext& context, System.Collections.Generic.List`1& assemblies) [0x000ac] in /Users/poupou/git/xamarin/xamarin-macios/tools/mtouch/Tuning.cs:79 Right now the MT2001 would only include the inner exception, which does not include any clue to which assembly caused the exception. Note: The same pattern to be applied to other BaseSubStep subclasses in separate commits. Related to (but not the fix for) https://bugzilla.xamarin.com/show_bug.cgi?id=44701
2016-09-28 18:46:14 +03:00
<Compile Include="..\linker\ExceptionalSubStep.cs">
<Link>Xamarin.Linker\ExceptionalSubStep.cs</Link>
</Compile>
<Compile Include="..\linker\RemoveUserResourcesSubStep.cs">
<Link>Xamarin.Linker\RemoveUserResourcesSubStep.cs</Link>
</Compile>
[linker] Add an well known candidate inliner substep along with tests (#1513) TL&DR: This is *how* it should be done and tested, it's not complete (single, simple case) nor the most interesting case ;-) The trick is to make sure each case is covered by tests so a mono _bump_ won't give us a BCL that does not conform to what the linker expect. What's the impact ? 1. There is the expected reduction of metadata in mscorlib. Since both methods don't call other API there's no indirect effect (removal). --- before 2017-01-15 11:12:44.000000000 -0500 +++ after 2017-01-15 11:12:56.000000000 -0500 @@ -13166,9 +13166,6 @@ System.Void System.Security.SecurityException::.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) System.Void System.Security.SecurityException::.ctor(System.String) System.Void System.Security.SecurityException::GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) -System.Boolean System.Security.SecurityManager::CheckElevatedPermissions() -System.Security.SecurityManager -System.Void System.Security.SecurityManager::EnsureElevatedPermissions() System.Security.SecurityRulesAttribute System.Security.SecurityRuleSet System.Security.SecurityRulesAttribute::m_ruleSet System.Void System.Security.SecurityRulesAttribute::.ctor(System.Security.SecurityRuleSet) 2. There is no visible size change (even with #1) in mscorlib.dll due to padding (compiler /filealign) mscorlib.dll 793,600 793,600 0 0.00 % 3. there's a *very* small reduction of mscorlib.*.aotdata size mscorlib.armv7.aotdata 717,264 717,216 -48 -0.01 % mscorlib.arm64.aotdata 712,840 712,704 -136 -0.02 % AOT data *.aotdata 6,460,064 6,459,880 -184 0.00 % 4. there's no change in executable size - normal as the AOT compiler has _likely_ already doing the same optimization (before this commit) Executable 29,270,272 29,270,272 0 0.00 % Full comparison: https://gist.github.com/spouliot/0464c8fa3a92b6486dfd90595d9eb718
2017-01-18 05:49:44 +03:00
<Compile Include="..\linker\MonoTouch.Tuner\InlinerSubStep.cs">
<Link>MonoTouch.Tuner\InlinerSubStep.cs</Link>
</Compile>
<Compile Include="..\linker\MonoTouch.Tuner\PreserveSmartEnumConversionsSubStep.cs">
<Link>MonoTouch.Tuner\PreserveSmartEnumConversionsSubStep.cs</Link>
</Compile>
<Compile Include="..\common\BuildTasks.cs">
<Link>common\BuildTasks.cs</Link>
</Compile>
<Compile Include="BuildTasks.mtouch.cs" />
[mtouch] Improve how we make sure native symbols aren't stripped away. Fixes #51710 and #54417. (#2162) * [mtouch] Improve how we make sure native symbols aren't stripped away. Fixes #51710 and #54417. * Refactor required symbol collection to store more information about each symbol (field, function, Objective-C class), and in general make the code more straight forward. * Implement support for generating source code that references these symbols, and do this whenever we can't ask the native linker to keep these symbols (when using bitcode). Additionally make it possible to do this manually, so that the source code can be generated for non-bitcode platforms too (which is useful if the number of symbols is enormous, in which case we might surpass the maximum command-line length). * Also make it possible to completely ignore native symbols, or ignore them on a per-symbol basis. This provides a fallback for users if we get something right and we try to preserve something that shouldn't be preserved (for instance if it doesn't exist), and the user ends up with unfixable linker errors. * Don't collect Objective-C classes unless they're in an assembly with LinkWith attributes. We don't need to preserve Objective-C classes in any other circumstances. * Implement everything for both Xamarin.iOS and Xamarin.Mac, and share the code between them. * Remove previous workaround for bug #51710, since it's no longer needed. * Add tests. https://bugzilla.xamarin.com/show_bug.cgi?id=54417 https://bugzilla.xamarin.com/show_bug.cgi?id=51710 * [mtouch] Make sure to only keep symbols from the current app when code sharing. This fixes a build problem with the interdependent-binding-projects test when testing in Today Extension mode.
2017-06-02 19:29:19 +03:00
<Compile Include="..\common\Symbols.cs">
<Link>external\Symbols.cs</Link>
</Compile>
<Compile Include="..\common\StringUtils.cs">
<Link>StringUtils.cs</Link>
</Compile>
2016-04-21 15:58:45 +03:00
</ItemGroup>
<ItemGroup>
<Reference Include="System.Core" />
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
2016-04-21 15:58:45 +03:00
</ItemGroup>
<ItemGroup>
<None Include="Makefile" />
<None Include="monotouch-fixes.c" />
<None Include="simlauncher.m" />
<None Include="..\..\docs\website\mtouch-errors.md">
<Link>mtouch-errors.md</Link>
</None>
2016-04-21 15:58:45 +03:00
</ItemGroup>
<ItemGroup>
<Folder Include="Mono.Linker\" />
<Folder Include="Mono.Linker.Steps\" />
<Folder Include="Mono.Tuner\" />
<Folder Include="MonoTouch.Tuner\" />
<Folder Include="external\" />
<Folder Include="external\maccore\" />
<Folder Include="Xamarin.Linker\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\external\mono\external\cecil\Mono.Cecil.csproj">
2016-04-21 15:58:45 +03:00
<Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
<Name>Mono.Cecil</Name>
</ProjectReference>
<ProjectReference Include="..\..\external\mono\external\cecil\symbols\mdb\Mono.Cecil.Mdb.csproj">
2016-04-21 15:58:45 +03:00
<Project>{8559DD7F-A16F-46D0-A05A-9139FAEBA8FD}</Project>
<Name>Mono.Cecil.Mdb</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="..\linker\Descriptors\mscorlib.xml">
<Link>mscorlib.xml</Link>
<LogicalName>mscorlib.xml</LogicalName>
</EmbeddedResource>
</ItemGroup>
<Target Name="AfterBuild">
<Exec Command="make mtouch" />
</Target>
2016-04-21 15:58:45 +03:00
</Project>