From 9da4a6d09bbb8a98b9825797b7ebf7124c254ca5 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Mon, 11 Dec 2017 10:45:51 -0500 Subject: [PATCH 01/50] Bump to mono:2017-12 --- .gitmodules | 2 +- Configuration.props | 4 ++-- build-tools/dependencies/dependencies.projitems | 4 ++-- external/Java.Interop | 2 +- external/llvm | 2 +- external/mono | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.gitmodules b/.gitmodules index 6ad93cededd..7656774ae89 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,7 +5,7 @@ [submodule "external/mono"] path = external/mono url = https://github.com/mono/mono.git - branch = 2017-10 + branch = 2017-12 [submodule "external/mxe"] path = external/mxe url = https://github.com/xamarin/mxe.git diff --git a/Configuration.props b/Configuration.props index 7074d85a246..cc984158c2b 100644 --- a/Configuration.props +++ b/Configuration.props @@ -54,8 +54,8 @@ $(MSBuildThisFileDirectory)external\Java.Interop $(MSBuildThisFileDirectory)external\llvm $(MSBuildThisFileDirectory)external\mono - 5.8.0 - 5.9.0 + 5.10.0 + 5.11.0 True $(MonoRequiredMinimumVersion).22 $(MSBuildThisFileDirectory)external\mono\external\linker diff --git a/build-tools/dependencies/dependencies.projitems b/build-tools/dependencies/dependencies.projitems index a75e37dbb07..5c73b4a3386 100644 --- a/build-tools/dependencies/dependencies.projitems +++ b/build-tools/dependencies/dependencies.projitems @@ -1,7 +1,7 @@ - <_DarwinMonoFramework>MonoFramework-MDK-5.8.0.22.macos10.xamarin.universal.pkg + <_DarwinMonoFramework>MonoFramework-MDK-5.10.0.0.macos10.xamarin.universal.pkg <_AptGetInstall>apt-get -f -u install @@ -59,7 +59,7 @@ $(MonoRequiredMaximumVersion) $(MonoRequiredDarwinMinimumVersion) $(MSBuildThisFileDirectory)..\scripts\mono-version - https://bosstoragemirror.azureedge.net/wrench/mono-2017-10/7e/7e85cfa5d228cd5148e59cde1d4d663457f96966/$(_DarwinMonoFramework) + https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2017-12/2/$(_DarwinMonoFramework) installer -pkg "$(AndroidToolchainCacheDirectory)\$(_DarwinMonoFramework)" -target / diff --git a/external/Java.Interop b/external/Java.Interop index cc1bb5f4e87..0afb2b0fe9d 160000 --- a/external/Java.Interop +++ b/external/Java.Interop @@ -1 +1 @@ -Subproject commit cc1bb5f4e8732af56c306921301db81b67a0b4d8 +Subproject commit 0afb2b0fe9d8670b51c551bdea41fbed459a4103 diff --git a/external/llvm b/external/llvm index 21492ec92e2..a9cfb50e5af 160000 --- a/external/llvm +++ b/external/llvm @@ -1 +1 @@ -Subproject commit 21492ec92e255a43bc6b687468f1eb18a635d94e +Subproject commit a9cfb50e5af3d632f8c1c9620ca52d0118523b53 diff --git a/external/mono b/external/mono index b06c50f3911..0c5a524e50e 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit b06c50f3911120456dfff7a389021d1c9299b2b6 +Subproject commit 0c5a524e50e64b2fcea4cb3c6366092c5b8c76f9 From e064e110ecef3271988251206ebb80775e03e045 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Wed, 13 Dec 2017 13:31:26 -0500 Subject: [PATCH 02/50] Fix compilation errors with mono:2017-12 --- build-tools/mono-runtimes/ProfileAssemblies.projitems | 4 +--- build-tools/mono-runtimes/mono-runtimes.targets | 8 ++++++-- external/mono | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/build-tools/mono-runtimes/ProfileAssemblies.projitems b/build-tools/mono-runtimes/ProfileAssemblies.projitems index 9c43186c783..053c5aa9684 100644 --- a/build-tools/mono-runtimes/ProfileAssemblies.projitems +++ b/build-tools/mono-runtimes/ProfileAssemblies.projitems @@ -252,8 +252,6 @@ System.Xml.Linq - - lib/monodroid - + diff --git a/build-tools/mono-runtimes/mono-runtimes.targets b/build-tools/mono-runtimes/mono-runtimes.targets index a921fabbb74..7bf854c3b52 100644 --- a/build-tools/mono-runtimes/mono-runtimes.targets +++ b/build-tools/mono-runtimes/mono-runtimes.targets @@ -57,10 +57,14 @@ <_BclAssembly Include="@(MonoProfileAssembly)" /> <_BclExcludeDebugSymbols Include="System.Windows.dll" /> <_BclExcludeDebugSymbols Include="System.Xml.Serialization.dll" /> - <_BclTestAssemblySource Include="@(MonoTestAssembly->'$(MonoSourceFullPath)\mcs\class\%(SourcePath)\%(Identity)')" /> - <_BclTestAssemblySource Include="@(MonoTestAssembly->'$(MonoSourceFullPath)\mcs\class\%(SourcePath)\%(Filename).pdb')" /> + <_BclTestAssemblySource Include="@(MonoTestAssembly->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\tests\%(Identity)')" /> + <_BclTestAssemblySource Include="@(MonoTestAssembly->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\tests\%(Filename).pdb')" /> + <_BclTestAssemblySource Include="@(MonoTestRunner->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\%(Identity)')" /> + <_BclTestAssemblySource Include="@(MonoTestRunner->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\%(Filename).pdb')" /> <_BclTestAssemblyDestination Include="@(MonoTestAssembly->'$(XAInstallPrefix)\..\..\bcl-tests\%(Identity)')" /> <_BclTestAssemblyDestination Include="@(MonoTestAssembly->'$(XAInstallPrefix)\..\..\bcl-tests\%(Filename).pdb')" /> + <_BclTestAssemblyDestination Include="@(MonoTestRunner->'$(XAInstallPrefix)\..\..\bcl-tests\%(Identity)')" /> + <_BclTestAssemblyDestination Include="@(MonoTestRunner->'$(XAInstallPrefix)\..\..\bcl-tests\%(Filename).pdb')" /> <_BclTestOutput Include="@(_BclTestAssemblyDestination)" /> diff --git a/external/mono b/external/mono index 0c5a524e50e..febbfd1e3e5 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 0c5a524e50e64b2fcea4cb3c6366092c5b8c76f9 +Subproject commit febbfd1e3e573785682eed8e13f597665d3d5486 From c48be82c8c20a4857a184ebe7e635077f35b8978 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Wed, 20 Dec 2017 10:34:01 +0100 Subject: [PATCH 03/50] Fix compilation errors with mono:2017-12 --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index febbfd1e3e5..34634352e1f 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit febbfd1e3e573785682eed8e13f597665d3d5486 +Subproject commit 34634352e1fb7386a7130fc175d0a89ddf1bb301 From 0edb4b321eb8fda0bd3762b362829529ad1fd07e Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Fri, 12 Jan 2018 12:00:54 +0100 Subject: [PATCH 04/50] Bump to mono/2017-12 --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index 34634352e1f..70fe915df2f 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 34634352e1fb7386a7130fc175d0a89ddf1bb301 +Subproject commit 70fe915df2f9108a60a2d7b2d19c9a861ac64323 From 07b188dab489d9f5c1f0706c9bcc1340fb457513 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Fri, 19 Jan 2018 10:58:22 -0500 Subject: [PATCH 05/50] Copy XUnit assemblies from a different location than NUnit assemblies --- .../mono-runtimes/mono-runtimes.targets | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/build-tools/mono-runtimes/mono-runtimes.targets b/build-tools/mono-runtimes/mono-runtimes.targets index e157a8c3140..32590c60420 100644 --- a/build-tools/mono-runtimes/mono-runtimes.targets +++ b/build-tools/mono-runtimes/mono-runtimes.targets @@ -57,10 +57,6 @@ <_BclAssembly Include="@(MonoProfileAssembly)" /> <_BclExcludeDebugSymbols Include="System.Windows.dll" /> <_BclExcludeDebugSymbols Include="System.Xml.Serialization.dll" /> - <_BclTestAssemblySource Include="@(MonoTestAssembly->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\tests\%(Identity)')" /> - <_BclTestAssemblySource Include="@(MonoTestAssembly->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\tests\%(Filename).pdb')" /> - <_BclTestAssemblySource Include="@(MonoTestRunner->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\%(Identity)')" /> - <_BclTestAssemblySource Include="@(MonoTestRunner->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\%(Filename).pdb')" /> <_BclTestAssemblyDestination Include="@(MonoTestAssembly->'$(XAInstallPrefix)\..\..\bcl-tests\%(Identity)')" /> <_BclTestAssemblyDestination Include="@(MonoTestAssembly->'$(XAInstallPrefix)\..\..\bcl-tests\%(Filename).pdb')" /> <_BclTestAssemblyDestination Include="@(MonoTestRunner->'$(XAInstallPrefix)\..\..\bcl-tests\%(Identity)')" /> @@ -319,12 +315,23 @@ Command="make -C $(MonoSourceFullPath)\mcs\class\%(MonoTestAssembly.SourcePath) xunit-test-local" WorkingDirectory="$(MonoSourceFullPath)" /> + + + <_BclTestAssemblyXUnit Include="@(MonoTestAssembly)" Condition="'%(MonoTestAssembly.TestType)' == 'xunit'" /> + <_BclTestAssemblyNUnit Include="@(MonoTestAssembly)" Condition="'%(MonoTestAssembly.TestType)' != 'xunit'" /> + <_BclTestAssemblySource Include="@(_BclTestAssemblyXUnit->'$(MonoSourceFullPath)\mcs\class\%(SourcePath)\%(Identity)')" /> + <_BclTestAssemblySource Include="@(_BclTestAssemblyXUnit->'$(MonoSourceFullPath)\mcs\class\%(SourcePath)\%(Filename).pdb')" /> + <_BclTestAssemblySource Include="@(_BclTestAssemblyNUnit->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\tests\%(Identity)')" /> + <_BclTestAssemblySource Include="@(_BclTestAssemblyNUnit->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\tests\%(Filename).pdb')" /> + <_BclTestAssemblySource Include="@(MonoTestRunner->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\%(Identity)')" /> + <_BclTestAssemblySource Include="@(MonoTestRunner->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\%(Filename).pdb')" /> + <_BclTestContent Include="$(MonoSourceFullPath)\mcs\class\%(MonoTestAssembly.SourcePath)\Test\**\*.*" /> From 89444df8f941b0566879a89b3599c786707fb3da Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Fri, 19 Jan 2018 11:00:05 -0500 Subject: [PATCH 06/50] Bump to mono/2017-12 --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index 70fe915df2f..12fa379c6a4 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 70fe915df2f9108a60a2d7b2d19c9a861ac64323 +Subproject commit 12fa379c6a4fd4e9e2a8a65c637127933e10204b From 678818fbab083c8267bd73c6467fefa5c92726f0 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Mon, 22 Jan 2018 18:14:12 -0500 Subject: [PATCH 07/50] Bump to mono/2017-12 --- external/mono | 2 +- .../Xamarin.Android.Build.Tasks.csproj | 68 ++++++++++--------- 2 files changed, 38 insertions(+), 32 deletions(-) diff --git a/external/mono b/external/mono index 12fa379c6a4..9ccd1450abb 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 12fa379c6a4fd4e9e2a8a65c637127933e10204b +Subproject commit 9ccd1450abb197c186e13db62581afc8d9fc8fb6 diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj index c84f365b2ba..ffc86f7cd91 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj @@ -269,99 +269,105 @@ - + Linker\Mono.Linker\Annotations.cs - + Linker\Mono.Linker\AssemblyAction.cs - + Linker\Mono.Linker\AssemblyResolver.cs - + Linker\Mono.Linker\I18nAssemblies.cs - + Linker\Mono.Linker\IXApiVisitor.cs - + Linker\Mono.Linker\LinkContext.cs - + Linker\Mono.Linker\MethodAction.cs - + Linker\Mono.Linker\MethodReferenceExtensions.cs - + Linker\Mono.Linker\Pipeline.cs - + Linker\Mono.Linker\TypePreserve.cs - + Linker\Mono.Linker\TypeReferenceExtensions.cs - + Linker\Mono.Linker\XApiReader.cs - + Linker\Mono.Linker.Steps\BlacklistStep.cs - + Linker\Mono.Linker.Steps\BaseStep.cs - + Linker\Mono.Linker.Steps\CleanStep.cs - + Linker\Mono.Linker.Steps\IStep.cs - + Linker\Mono.Linker.Steps\LoadI18nAssemblies.cs - + Linker\Mono.Linker.Steps\LoadReferencesStep.cs - + Linker\Mono.Linker.Steps\OutputStep.cs - + Linker\Mono.Linker.Steps\RegenerateGuidStep.cs - + Linker\Mono.Linker.Steps\ResolveFromAssemblyStep.cs - + Linker\Mono.Linker.Steps\ResolveFromXApiStep.cs - + Linker\Mono.Linker.Steps\ResolveFromXmlStep.cs - + Linker\Mono.Linker.Steps\ResolveStep.cs - + Linker\Mono.Linker.Steps\TypeMapStep.cs - + Linker\Mono.Linker.Steps\SweepStep.cs - + Linker\Mono.Linker.Steps\MarkStep.cs - + Linker\Mono.Linker\LoadException.cs - + Linker\Mono.Linker\MarkException.cs - + Linker\Mono.Linker\ConsoleLogger.cs - + Linker\Mono.Linker\ILogger.cs + + Linker\Mono.Linker\MarkingHelpers.cs + + + Linker\Mono.Linker\Tracer.cs + From 30e7561ef64e07f240f5582e33053128c5da1b86 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Wed, 24 Jan 2018 17:01:32 -0500 Subject: [PATCH 08/50] Bump to mono/2017-12 --- build-tools/dependencies/dependencies.projitems | 4 ++-- external/mono | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build-tools/dependencies/dependencies.projitems b/build-tools/dependencies/dependencies.projitems index 5c73b4a3386..a3046d44919 100644 --- a/build-tools/dependencies/dependencies.projitems +++ b/build-tools/dependencies/dependencies.projitems @@ -1,7 +1,7 @@ - <_DarwinMonoFramework>MonoFramework-MDK-5.10.0.0.macos10.xamarin.universal.pkg + <_DarwinMonoFramework>MonoFramework-MDK-5.10.0.47.macos10.xamarin.universal.pkg <_AptGetInstall>apt-get -f -u install @@ -59,7 +59,7 @@ $(MonoRequiredMaximumVersion) $(MonoRequiredDarwinMinimumVersion) $(MSBuildThisFileDirectory)..\scripts\mono-version - https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2017-12/2/$(_DarwinMonoFramework) + https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2017-12/41/$(_DarwinMonoFramework) installer -pkg "$(AndroidToolchainCacheDirectory)\$(_DarwinMonoFramework)" -target / diff --git a/external/mono b/external/mono index 9ccd1450abb..57500fce5d7 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 9ccd1450abb197c186e13db62581afc8d9fc8fb6 +Subproject commit 57500fce5d7e46b15152cd0461cf5a6354c20fa4 From 4ab19ee8407f507b79fc98d39b911913518553ff Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Wed, 31 Jan 2018 13:04:24 -0500 Subject: [PATCH 09/50] Bump to mono/2017-12 --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index 57500fce5d7..e87f9d77e78 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 57500fce5d7e46b15152cd0461cf5a6354c20fa4 +Subproject commit e87f9d77e78f768935c477c1f41fb5a13977350f From 533c7c06da4b34cacd066b93000d334c98bf54e1 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Wed, 31 Jan 2018 13:17:04 -0500 Subject: [PATCH 10/50] Bump to Java.Interop/mono-2017-12 --- external/Java.Interop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/Java.Interop b/external/Java.Interop index 0afb2b0fe9d..884cab571aa 160000 --- a/external/Java.Interop +++ b/external/Java.Interop @@ -1 +1 @@ -Subproject commit 0afb2b0fe9d8670b51c551bdea41fbed459a4103 +Subproject commit 884cab571aac24a94dbe06e5c263c37a72125f5e From def9f758526f83637358ebc52bd001bc93368797 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Thu, 1 Feb 2018 17:42:09 -0500 Subject: [PATCH 11/50] Fix msbuild variable for copying mono tests --- build-tools/mono-runtimes/mono-runtimes.targets | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build-tools/mono-runtimes/mono-runtimes.targets b/build-tools/mono-runtimes/mono-runtimes.targets index aedccaec18b..1659a200d23 100644 --- a/build-tools/mono-runtimes/mono-runtimes.targets +++ b/build-tools/mono-runtimes/mono-runtimes.targets @@ -348,10 +348,10 @@ <_BclTestContent Include="$(MonoSourceFullPath)\mcs\class\%(MonoTestAssembly.SourcePath)\Test\**\*.*" /> From a7f3c955699653629d574ceaa1b92483264122e6 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Fri, 2 Feb 2018 11:51:36 -0500 Subject: [PATCH 12/50] Fix compilation of monodroid_corlib_xunit-test.dll --- build-tools/mono-runtimes/ProfileAssemblies.projitems | 1 + 1 file changed, 1 insertion(+) diff --git a/build-tools/mono-runtimes/ProfileAssemblies.projitems b/build-tools/mono-runtimes/ProfileAssemblies.projitems index 334fd47520f..2cb5e0dcd48 100644 --- a/build-tools/mono-runtimes/ProfileAssemblies.projitems +++ b/build-tools/mono-runtimes/ProfileAssemblies.projitems @@ -176,6 +176,7 @@ + From aa9abcbe1ab2b2ab90a83266d6123d6419c6effa Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Fri, 2 Feb 2018 14:05:58 -0500 Subject: [PATCH 13/50] Exclude System.Runtime.CompilerServices.Unsafe from install --- build-tools/mono-runtimes/mono-runtimes.targets | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/build-tools/mono-runtimes/mono-runtimes.targets b/build-tools/mono-runtimes/mono-runtimes.targets index 1659a200d23..61960c99b86 100644 --- a/build-tools/mono-runtimes/mono-runtimes.targets +++ b/build-tools/mono-runtimes/mono-runtimes.targets @@ -57,6 +57,7 @@ <_BclAssembly Include="@(MonoProfileAssembly)" /> <_BclExcludeDebugSymbols Include="System.Windows.dll" /> <_BclExcludeDebugSymbols Include="System.Xml.Serialization.dll" /> + <_BclExcludeAssembly Include="System.Runtime.CompilerServices.Unsafe.dll" /> <_BclTestAssemblyDestination Include="@(MonoTestAssembly->'$(XAInstallPrefix)\..\..\bcl-tests\%(Identity)')" /> <_BclTestAssemblyDestination Include="@(MonoTestAssembly->'$(XAInstallPrefix)\..\..\bcl-tests\%(Filename).pdb')" /> <_BclTestAssemblyDestination Include="@(MonoTestRunner->'$(XAInstallPrefix)\..\..\bcl-tests\%(Identity)')" /> @@ -80,7 +81,10 @@ /> - <_BclInstalledItem Include="@(_BclAssembly->'$(_BclFrameworkDir)%(Identity)')" /> + <_BclInstalledItem + Include="@(_BclAssembly->'$(_BclFrameworkDir)%(Identity)')" + Exclude="@(_BclExcludeAssembly->'$(_BclFrameworkDir)%(Identity)')" + /> <_BclInstalledItem Condition=" '$(_DebugFileExt)' == '.mdb' " Include="@(_BclAssembly->'$(_BclFrameworkDir)%(Identity).mdb')" From d5fbc29a5bf452c8037dbc6525823f28850a5711 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Fri, 2 Feb 2018 15:10:29 -0500 Subject: [PATCH 14/50] Fix compilation of monodroid_corlib_xunit-test.dll (second attempt) --- build-tools/mono-runtimes/ProfileAssemblies.projitems | 6 +++++- build-tools/mono-runtimes/mono-runtimes.targets | 11 +++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/build-tools/mono-runtimes/ProfileAssemblies.projitems b/build-tools/mono-runtimes/ProfileAssemblies.projitems index 2cb5e0dcd48..957cbf6b368 100644 --- a/build-tools/mono-runtimes/ProfileAssemblies.projitems +++ b/build-tools/mono-runtimes/ProfileAssemblies.projitems @@ -176,7 +176,6 @@ - @@ -261,6 +260,11 @@ System.Xml.Linq + + + System.Runtime.CompilerServices.Unsafe + reference + diff --git a/build-tools/mono-runtimes/mono-runtimes.targets b/build-tools/mono-runtimes/mono-runtimes.targets index 61960c99b86..401e16520fe 100644 --- a/build-tools/mono-runtimes/mono-runtimes.targets +++ b/build-tools/mono-runtimes/mono-runtimes.targets @@ -57,7 +57,6 @@ <_BclAssembly Include="@(MonoProfileAssembly)" /> <_BclExcludeDebugSymbols Include="System.Windows.dll" /> <_BclExcludeDebugSymbols Include="System.Xml.Serialization.dll" /> - <_BclExcludeAssembly Include="System.Runtime.CompilerServices.Unsafe.dll" /> <_BclTestAssemblyDestination Include="@(MonoTestAssembly->'$(XAInstallPrefix)\..\..\bcl-tests\%(Identity)')" /> <_BclTestAssemblyDestination Include="@(MonoTestAssembly->'$(XAInstallPrefix)\..\..\bcl-tests\%(Filename).pdb')" /> <_BclTestAssemblyDestination Include="@(MonoTestRunner->'$(XAInstallPrefix)\..\..\bcl-tests\%(Identity)')" /> @@ -81,10 +80,7 @@ /> - <_BclInstalledItem - Include="@(_BclAssembly->'$(_BclFrameworkDir)%(Identity)')" - Exclude="@(_BclExcludeAssembly->'$(_BclFrameworkDir)%(Identity)')" - /> + <_BclInstalledItem Include="@(_BclAssembly->'$(_BclFrameworkDir)%(Identity)')" /> <_BclInstalledItem Condition=" '$(_DebugFileExt)' == '.mdb' " Include="@(_BclAssembly->'$(_BclFrameworkDir)%(Identity).mdb')" @@ -341,8 +337,11 @@ /> + <_BclTestAssemblyReference Include="@(MonoTestAssembly)" Condition="'%(MonoTestAssembly.TestType)' == 'reference'" /> <_BclTestAssemblyXUnit Include="@(MonoTestAssembly)" Condition="'%(MonoTestAssembly.TestType)' == 'xunit'" /> - <_BclTestAssemblyNUnit Include="@(MonoTestAssembly)" Condition="'%(MonoTestAssembly.TestType)' != 'xunit'" /> + <_BclTestAssemblyNUnit Include="@(MonoTestAssembly)" Condition="'%(MonoTestAssembly.TestType)' == ''" /> + <_BclTestAssemblySource Include="@(_BclTestAssemblyReference->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\%(Identity)')" /> + <_BclTestAssemblySource Include="@(_BclTestAssemblyReference->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\%(Filename).pdb')" /> <_BclTestAssemblySource Include="@(_BclTestAssemblyXUnit->'$(MonoSourceFullPath)\mcs\class\%(SourcePath)\%(Identity)')" /> <_BclTestAssemblySource Include="@(_BclTestAssemblyXUnit->'$(MonoSourceFullPath)\mcs\class\%(SourcePath)\%(Filename).pdb')" /> <_BclTestAssemblySource Include="@(_BclTestAssemblyNUnit->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\tests\%(Identity)')" /> From c303aa379ccf3b0378511e51d59ce3f361577e81 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Fri, 2 Feb 2018 19:03:28 -0500 Subject: [PATCH 15/50] Fix missing System.Runtime.CompilerServices.Unsafe.pdb --- build-tools/mono-runtimes/mono-runtimes.targets | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build-tools/mono-runtimes/mono-runtimes.targets b/build-tools/mono-runtimes/mono-runtimes.targets index 401e16520fe..e40bd6f7f82 100644 --- a/build-tools/mono-runtimes/mono-runtimes.targets +++ b/build-tools/mono-runtimes/mono-runtimes.targets @@ -341,7 +341,7 @@ <_BclTestAssemblyXUnit Include="@(MonoTestAssembly)" Condition="'%(MonoTestAssembly.TestType)' == 'xunit'" /> <_BclTestAssemblyNUnit Include="@(MonoTestAssembly)" Condition="'%(MonoTestAssembly.TestType)' == ''" /> <_BclTestAssemblySource Include="@(_BclTestAssemblyReference->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\%(Identity)')" /> - <_BclTestAssemblySource Include="@(_BclTestAssemblyReference->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\%(Filename).pdb')" /> + <_BclTestAssemblySource Include="@(_BclTestAssemblyReference->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\%(Filename).pdb')" Condition="Exists('@(_BclTestAssemblyReference->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\%(Filename).pdb')')" /> <_BclTestAssemblySource Include="@(_BclTestAssemblyXUnit->'$(MonoSourceFullPath)\mcs\class\%(SourcePath)\%(Identity)')" /> <_BclTestAssemblySource Include="@(_BclTestAssemblyXUnit->'$(MonoSourceFullPath)\mcs\class\%(SourcePath)\%(Filename).pdb')" /> <_BclTestAssemblySource Include="@(_BclTestAssemblyNUnit->'$(MonoSourceFullPath)\mcs\class\lib\monodroid\tests\%(Identity)')" /> @@ -351,7 +351,7 @@ Date: Mon, 5 Feb 2018 19:09:28 -0500 Subject: [PATCH 16/50] Bump to mono:2018-02 --- .gitmodules | 2 +- Configuration.props | 4 ++-- build-tools/dependencies/dependencies.projitems | 4 ++-- external/mono | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitmodules b/.gitmodules index 94d4afb6c0f..671292c3d54 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,7 +5,7 @@ [submodule "external/mono"] path = external/mono url = https://github.com/mono/mono.git - branch = 2017-12 + branch = 2018-02 [submodule "external/mxe"] path = external/mxe url = https://github.com/xamarin/mxe.git diff --git a/Configuration.props b/Configuration.props index 640a85b9902..5eb6b70c6c3 100644 --- a/Configuration.props +++ b/Configuration.props @@ -54,8 +54,8 @@ $(MSBuildThisFileDirectory)external\Java.Interop $(MSBuildThisFileDirectory)external\llvm $(MSBuildThisFileDirectory)external\mono - 5.10.0 - 5.11.0 + 5.12.0 + 5.13.0 True $(MonoRequiredMinimumVersion).22 $(MSBuildThisFileDirectory)external\mono\external\linker diff --git a/build-tools/dependencies/dependencies.projitems b/build-tools/dependencies/dependencies.projitems index a3046d44919..cc7cfb902c8 100644 --- a/build-tools/dependencies/dependencies.projitems +++ b/build-tools/dependencies/dependencies.projitems @@ -1,7 +1,7 @@ - <_DarwinMonoFramework>MonoFramework-MDK-5.10.0.47.macos10.xamarin.universal.pkg + <_DarwinMonoFramework>MonoFramework-MDK-5.12.0.1.macos10.xamarin.universal.pkg <_AptGetInstall>apt-get -f -u install @@ -59,7 +59,7 @@ $(MonoRequiredMaximumVersion) $(MonoRequiredDarwinMinimumVersion) $(MSBuildThisFileDirectory)..\scripts\mono-version - https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2017-12/41/$(_DarwinMonoFramework) + https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2018-02/4/3320f45d98e60218380a4c8d783580dc3e8ab280/$(_DarwinMonoFramework) installer -pkg "$(AndroidToolchainCacheDirectory)\$(_DarwinMonoFramework)" -target / diff --git a/external/mono b/external/mono index e87f9d77e78..3320f45d98e 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit e87f9d77e78f768935c477c1f41fb5a13977350f +Subproject commit 3320f45d98e60218380a4c8d783580dc3e8ab280 From 6f4cf7fb3f14b7462e926578fce0cd29c0019618 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Tue, 6 Feb 2018 12:08:45 -0500 Subject: [PATCH 17/50] Fix missed MonoRequiredDarwinMinimumVersion for bumping --- Configuration.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Configuration.props b/Configuration.props index 5eb6b70c6c3..fdb2b41ded0 100644 --- a/Configuration.props +++ b/Configuration.props @@ -57,7 +57,7 @@ 5.12.0 5.13.0 True - $(MonoRequiredMinimumVersion).22 + $(MonoRequiredMinimumVersion).0 $(MSBuildThisFileDirectory)external\mono\external\linker $(MSBuildThisFileDirectory)external\opentk $(MSBuildThisFileDirectory)external\libzip From c308714c920f62486724d0be99c00900ebf5b85f Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Fri, 9 Feb 2018 22:15:44 +0000 Subject: [PATCH 18/50] Bump Mono to 7126712f8632560b4909e224d35be3a64255b037. --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index 3320f45d98e..7126712f863 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 3320f45d98e60218380a4c8d783580dc3e8ab280 +Subproject commit 7126712f8632560b4909e224d35be3a64255b037 From c96d2384bb69329e7bb99b04bd58f22f326b8aa1 Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Fri, 9 Feb 2018 19:22:35 +0000 Subject: [PATCH 19/50] Update _DarwinMonoFramework. --- build-tools/dependencies/dependencies.projitems | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-tools/dependencies/dependencies.projitems b/build-tools/dependencies/dependencies.projitems index cc7cfb902c8..483c674b8a9 100644 --- a/build-tools/dependencies/dependencies.projitems +++ b/build-tools/dependencies/dependencies.projitems @@ -1,7 +1,7 @@ - <_DarwinMonoFramework>MonoFramework-MDK-5.12.0.1.macos10.xamarin.universal.pkg + <_DarwinMonoFramework>MonoFramework-MDK-5.12.0.11.macos10.xamarin.universal.pkg <_AptGetInstall>apt-get -f -u install From e83851c4bc7499c12a85273152452668f7b72234 Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Fri, 9 Feb 2018 22:18:27 +0000 Subject: [PATCH 20/50] Update Xamarin.Android.Build.Tasks.csproj to reflect linker changes. --- .../Xamarin.Android.Build.Tasks.csproj | 72 +++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj index 968a0a414b0..3bf9ee2f42c 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj @@ -270,103 +270,103 @@ - Linker\Mono.Linker\Annotations.cs + Linker\Linker\Annotations.cs - Linker\Mono.Linker\AssemblyAction.cs + Linker\Linker\AssemblyAction.cs - Linker\Mono.Linker\AssemblyResolver.cs + Linker\Linker\AssemblyResolver.cs - Linker\Mono.Linker\I18nAssemblies.cs + Linker\Linker\I18nAssemblies.cs - Linker\Mono.Linker\IXApiVisitor.cs + Linker\Linker\IXApiVisitor.cs - Linker\Mono.Linker\LinkContext.cs + Linker\Linker\LinkContext.cs - Linker\Mono.Linker\MethodAction.cs + Linker\Linker\MethodAction.cs - Linker\Mono.Linker\MethodReferenceExtensions.cs + Linker\Linker\MethodReferenceExtensions.cs - Linker\Mono.Linker\Pipeline.cs + Linker\Linker\Pipeline.cs - Linker\Mono.Linker\TypePreserve.cs + Linker\Linker\TypePreserve.cs - Linker\Mono.Linker\TypeReferenceExtensions.cs + Linker\Linker\TypeReferenceExtensions.cs - Linker\Mono.Linker\XApiReader.cs + Linker\Linker\XApiReader.cs - Linker\Mono.Linker.Steps\BlacklistStep.cs + Linker\Linker.Steps\BlacklistStep.cs - Linker\Mono.Linker.Steps\BaseStep.cs + Linker\Linker.Steps\BaseStep.cs - Linker\Mono.Linker.Steps\CleanStep.cs + Linker\Linker.Steps\CleanStep.cs - Linker\Mono.Linker.Steps\IStep.cs + Linker\Linker.Steps\IStep.cs - Linker\Mono.Linker.Steps\LoadI18nAssemblies.cs + Linker\Linker.Steps\LoadI18nAssemblies.cs - Linker\Mono.Linker.Steps\LoadReferencesStep.cs + Linker\Linker.Steps\LoadReferencesStep.cs - Linker\Mono.Linker.Steps\OutputStep.cs + Linker\Linker.Steps\OutputStep.cs - Linker\Mono.Linker.Steps\RegenerateGuidStep.cs + Linker\Linker.Steps\RegenerateGuidStep.cs - Linker\Mono.Linker.Steps\ResolveFromAssemblyStep.cs + Linker\Linker.Steps\ResolveFromAssemblyStep.cs - Linker\Mono.Linker.Steps\ResolveFromXApiStep.cs + Linker\Linker.Steps\ResolveFromXApiStep.cs - Linker\Mono.Linker.Steps\ResolveFromXmlStep.cs + Linker\Linker.Steps\ResolveFromXmlStep.cs - Linker\Mono.Linker.Steps\ResolveStep.cs + Linker\Linker.Steps\ResolveStep.cs - Linker\Mono.Linker.Steps\TypeMapStep.cs + Linker\Linker.Steps\TypeMapStep.cs - Linker\Mono.Linker.Steps\SweepStep.cs + Linker\Linker.Steps\SweepStep.cs - Linker\Mono.Linker.Steps\MarkStep.cs + Linker\Linker.Stepsq\MarkStep.cs - Linker\Mono.Linker\LoadException.cs + Linker\Linker\LoadException.cs - Linker\Mono.Linker\MarkException.cs + Linker\Linker\MarkException.cs - Linker\Mono.Linker\ConsoleLogger.cs + Linker\Linker\ConsoleLogger.cs - Linker\Mono.Linker\ILogger.cs - - - Linker\Mono.Linker\MarkingHelpers.cs + Linker\Linker\ILogger.cs - Linker\Mono.Linker\Tracer.cs + Linker\Linker\Tracer.cs + + + Linker\Linker\MarkingHelpers.cs @@ -653,7 +653,7 @@ - + From 26589376728870c0a4aa2bd85cbc7a21f08feca6 Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Tue, 13 Feb 2018 22:02:08 +0000 Subject: [PATCH 21/50] Bump Mono. --- build-tools/dependencies/dependencies.projitems | 2 +- external/mono | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build-tools/dependencies/dependencies.projitems b/build-tools/dependencies/dependencies.projitems index 483c674b8a9..5c1cf535aba 100644 --- a/build-tools/dependencies/dependencies.projitems +++ b/build-tools/dependencies/dependencies.projitems @@ -1,7 +1,7 @@ - <_DarwinMonoFramework>MonoFramework-MDK-5.12.0.11.macos10.xamarin.universal.pkg + <_DarwinMonoFramework>MonoFramework-MDK-5.12.0.23.macos10.xamarin.universal.pkg <_AptGetInstall>apt-get -f -u install diff --git a/external/mono b/external/mono index 7126712f863..72aea0056b8 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 7126712f8632560b4909e224d35be3a64255b037 +Subproject commit 72aea0056b84aa400d8367824f845724deeb8fb1 From 9fd1f4d0d58f834992b7fd0ad97b470c80e86b2a Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Wed, 14 Feb 2018 13:31:33 -0500 Subject: [PATCH 22/50] Fix package version. --- build-tools/dependencies/dependencies.projitems | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-tools/dependencies/dependencies.projitems b/build-tools/dependencies/dependencies.projitems index 5c1cf535aba..3f8c8ab4946 100644 --- a/build-tools/dependencies/dependencies.projitems +++ b/build-tools/dependencies/dependencies.projitems @@ -1,7 +1,7 @@ - <_DarwinMonoFramework>MonoFramework-MDK-5.12.0.23.macos10.xamarin.universal.pkg + <_DarwinMonoFramework>MonoFramework-MDK-5.12.0.28.macos10.xamarin.universal.pkg <_AptGetInstall>apt-get -f -u install From fb36c7414ab510d4b5ed9201ec7bb6a5a9c886f0 Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Wed, 14 Feb 2018 16:15:29 -0500 Subject: [PATCH 23/50] Update DarwinMinimumUrl. --- build-tools/dependencies/dependencies.projitems | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-tools/dependencies/dependencies.projitems b/build-tools/dependencies/dependencies.projitems index 3f8c8ab4946..5e5225a717e 100644 --- a/build-tools/dependencies/dependencies.projitems +++ b/build-tools/dependencies/dependencies.projitems @@ -59,7 +59,7 @@ $(MonoRequiredMaximumVersion) $(MonoRequiredDarwinMinimumVersion) $(MSBuildThisFileDirectory)..\scripts\mono-version - https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2018-02/4/3320f45d98e60218380a4c8d783580dc3e8ab280/$(_DarwinMonoFramework) + https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2018-02/29/f0f76abc304dd768b8dbd18397329816006c682b/$(_DarwinMonoFramework) installer -pkg "$(AndroidToolchainCacheDirectory)\$(_DarwinMonoFramework)" -target / From e9c3690693662bbd9408c53d331fd39c7fff300c Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Wed, 21 Feb 2018 19:31:37 +0000 Subject: [PATCH 24/50] linkeranalyzer -> illinkanalyzer --- build-tools/mono-runtimes/mono-runtimes.targets | 2 +- tools/scripts/illinkanalyzer | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build-tools/mono-runtimes/mono-runtimes.targets b/build-tools/mono-runtimes/mono-runtimes.targets index fcc85be4a08..570ca757c1d 100644 --- a/build-tools/mono-runtimes/mono-runtimes.targets +++ b/build-tools/mono-runtimes/mono-runtimes.targets @@ -93,7 +93,7 @@ /> - <_MonoUtility Include="linkeranalyzer.exe" /> + <_MonoUtility Include="illinkanalyzer.exe" /> <_MonoUtility Include="mono-symbolicate.exe" /> <_MonoUtility Include="mkbundle.exe" /> diff --git a/tools/scripts/illinkanalyzer b/tools/scripts/illinkanalyzer index ad4934ff411..b84c7fb0f7a 100755 --- a/tools/scripts/illinkanalyzer +++ b/tools/scripts/illinkanalyzer @@ -3,4 +3,4 @@ BINDIR=`dirname "$0"` MANDROID_DIR="$BINDIR/.." unset MONO_PATH -exec mono $MONO_OPTIONS "$MANDROID_DIR/linkeranalyzer.exe" "$@" +exec mono $MONO_OPTIONS "$MANDROID_DIR/illinkanalyzer.exe" "$@" From faee6c69481634b2a3ffaa93edcc0defa72f6107 Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Wed, 21 Feb 2018 19:35:34 +0000 Subject: [PATCH 25/50] Squashed commit of the following: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit d3ad5440942d7a52ecce05c969a84326253b56cf Author: Dean Ellis Date: Wed Feb 21 16:36:10 2018 +0000 [Xamarin.Android.Build.Tasks] Update `CalculateProjectDependencies` to match spec (#1323) The `GetAndroidDependencies` target (f9b2c972) is intended to be called by an IDE on project-load, so that the IDE can install project dependencies "in the background," and ideally have the dependencies installed before the project is actually built. As such, the semantics of the `@(AndroidDependency)` output item group need to be agreed upon by xamarin-android, the IDEs, and whatever the IDEs use to actually install the dependencies. The `%(AndroidDependency.Identity)` values need to be well-defined and consistent across these three different libraries. In commit f9b2c972, certain values would have a version number "embedded" within `%(AndroidDependency.Identity)`, using a `;` to separate the name from the version, e.g. `build-tools;26.0.1`. Use of `;` was chosen because that made it easier for the package installation code to use (e.g. it would be identical to what the Android SDK `sdkmanager` utility expects). Unfortunately, the use of `;` was counter to the [spec][spec], and also looks "weird" in the context of MSBuild, as `;` is *also* the item group separator. Change the version separator to instead be a `/`. This "looks" better and is also consistent with the [installer manifest][manifest] schema that we will use, wherein `%(AndroidDependency.Identity)` matches a `//xamarin-android/*/@filesystem-path` attribute value: `@(AndroidDependency)` could be equivalent to: 27.0.3 $(AndroidSdkPlatformToolsVersion) 27 $(AndroidSdkToolsVersion) [manifest]: https://gist.github.com/dellis1972/08ba76cc19cdce3dec89c68684664299 [spec]: https://microsoft-my.sharepoint.com/:w:/r/personal/mhutch_microsoft_com/_layouts/15/WopiFrame.aspx?sourcedoc=%7B0436dd38-c9ff-4cf2-b33c-ee4515b68546%7D&action=edit&wdPid=64869a58 commit e489aae3779300b3e282560a067371b979498538 Author: Jonathan Pryor Date: Wed Feb 21 10:41:32 2018 -0500 Bump to mono/2017-12/de4729fa (#1325) Context: https://github.com/xamarin/xamarin-android/pull/1078 Context: https://github.com/mono/mono/issues/7145 The primary impetus is that mono/de4729fa contains "ignore" improvements to `mono-api-html`, which will be needed in order to complete PR #1078. commit f7b24f7cc39cff6b1086049b3aade1a73a87a0b5 Author: Dean Ellis Date: Tue Feb 20 16:25:23 2018 +0000 [Xamarin.Android.Build.Tests] Add tests for (#1321) This commit adds a basic unit test for the `` task. commit d207275ba618aae149e38080901995d7176401bf Author: Atsushi Eno Date: Tue Feb 20 00:37:10 2018 +0900 [msbuild] Fix -ed filename, for case sensitivity. (#1322) There is a trivial difference between `msbuild` and `xbuild` - `msbuild` seems to respect (or ignorant of) the fact that filenames that are different in case are actually different on case-sensitive filesystem. Thus with `msbuild`, our binding projects don't build due to "missing" Microsoft.CSharp.Targets (there are only Microsoft.CSharp.targets even in `xbuild` support files in mono). This trivial fix should make it work. commit 49ecddaea61d789486d5d7b9724d842d495f1257 Author: Ludovic Henry Date: Fri Feb 16 17:09:43 2018 -0500 Bump to mono/2017-12/0d51a806 (#1318) To simplify integrating mono's SDKs feature. commit 8419f81606827fb489f67c807b610be01ea14bd2 Author: Jonathan Pryor Date: Fri Feb 16 16:07:12 2018 -0500 Bump $(ProductVersion) to 8.3.99 (Commercial) Xamarin.Android v8.3 is being tracked in the [xamarin-android/d15-7][0] branch, which was branched from commit 70ccc834. Bump `$(ProductVersion)` to 8.3.99 to track development progress of the *next* version of Xamarin.Android. [0]: https://github.com/xamarin/xamarin-android/commits/d15-7 commit 70ccc834f3f2dfd7b9299d2fc4fb19a77a27adb5 Author: Matt Sylvia Date: Fri Feb 16 11:56:35 2018 -0500 Bump to Java.Interop/master/15cf8c1, mono/2017-12/fbc4f05 (#1317) Context: https://github.com/mono/mono/issues/6948 Harmonizes on cecil/mono-2017-12/dfee11e. commit c960a6fc81b41d8f4fe70570cecd6743bf43d7cd Author: Jonathan Pryor Date: Fri Feb 16 10:43:11 2018 -0500 Bump to xamarin-android-api-compatibility/d15-7/dc5f0c2e Fixes an [ABI break][0] in 72ef39b0: [0]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android/877/

Type Changed: Microsoft.SqlServer.Server.SqlDataRecord

Removed method:

    	  public virtual System.Data.IDataReader GetData (int);
    	

Type Changed: System.Data.SqlClient.SqlConnectionStringBuilder

Removed property:

    	  public bool IsFixedSize { get; }
    	

Type Changed: System.Data.SqlClient.SqlParameterCollection

Removed properties:

    	  public bool IsFixedSize { get; }
    	  public bool IsReadOnly { get; }
    	  public bool IsSynchronized { get; }
    	
This doesn't fix the "ABI break"; there is no ABI break of consequence. This fixes the *reporting* of the ABI break. See also: https://github.com/xamarin/xamarin-android-api-compatibility/commit/5be4d43f6b93abe0d3cd8f6f2f90be7c1a64f94d commit 72ef39b02e170753505e662b05a49878d147f875 Author: Jonathan Pryor Date: Thu Feb 15 20:32:20 2018 -0500 Bump to xamarin-android-api-compatibility/d15-7/9d71e200 Context: https://github.com/xamarin/xamarin-android/pull/1303 Fixes an [ABI BREAK][0] from b2ca17a1:

Type Changed: Android.Widget.ListView

Modified fields:

    	
public const int ChoiceMode ChoiceModeMultiple = 2;
public const int ChoiceMode ChoiceModeNone = 0;
public const int ChoiceMode ChoiceModeSingle = 1;
The problem is that [xamarin-android-api-compatibility PR #13][ac-13] is part of PR #1303, but #1303 hasn't been merged yet. As such, it had no need to be in the xamarin-android-api-compatibility/d15-7 branch. It has been reverted, thus fixing the above ABI break. [0]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android/876/console [ac-13]: https://github.com/xamarin/xamarin-android-api-compatibility/pull/13 commit d0cb3ce3bc61ec14a1c9867ac4d29df841cf3727 Author: Jonathan Pryor Date: Thu Feb 15 14:12:30 2018 -0500 Bump to mono/2017-12/2ad3f0bf Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60088 commit b2ca17a1b62bf262c0cbd1b49c8f445ea8e2dfb6 Author: Jonathan Pryor Date: Thu Feb 15 12:38:12 2018 -0500 Bump to xamarin-android-api-compatibility/d15-7/10df9b67 (#1314) Context: 34f437d97d6d5f56d684af99449de49b870b32cc Context: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android/873/ The bump to mono/2017-12 in commit 34f437d9 included ABI "breakage" in `System.Data.dll` which wasn't *actual* breakage. Update xamarin-android-api-compatibility to so that we don't report warnings for this "breakage." commit 3a35c00741be4491e18806e7ae84b59514e045a0 Author: Jonathan Pryor Date: Thu Feb 15 12:36:24 2018 -0500 Bump to Java.Interop/master/0841c32f Bumps to cecil/master/dfee11e For d15-7 harmonization. commit 92949f4d96ed3ff6cbfb6e6aa6b33ed1c7d0fb7a Author: Jonathan Pryor Date: Thu Feb 15 12:27:55 2018 -0500 [mono-runtimes] Fix bundle usage Commit 34f437d9 inadvertently broke mono bundle usage. For example, the [first commit after the mono bump][xa-01be] *should* have taken around 3h to build. Instead, it took nearly 7h, because the bundle wasn't being used, causing the mono runtimes to be rebuilt: [xa-01be]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android/874/ Target _BuildUnlessCached needs to be built as output file '…/xamarin-android//bin/Debug/lib/xamarin.android//../../bcl-tests/System.Runtime.CompilerServices.Unsafe.pdb' does not exist. Indeed, `System.Runtime.CompilerServices.Usafe.pdb` *doesn't* exist, nor should it, as it's compiled from IL directly. Fix mono bundle usage by updating `@(_BclTestAssemblyDestination)` to exclude `System.Runtime.CompilerServices.Unsafe.pdb`. This allows the `_BuildUnlessCached` target to properly recognize that all required files *do* exist, thus skipping the mono-runtimes build (as desired). commit 01be8ac8314211095a3f69e020f2b2fcc5a66865 Author: Dean Ellis Date: Thu Feb 15 02:38:56 2018 +0000 [Xamarin.Android.Build.Tasks] Stop designtime designer being deleted. (#1307) Fixes: https://github.com/xamarin/xamarin-android/issues/1286 We have a number of problems with our DesignTime build system. The main one which this PR addresses is the designer file is deleted by `IncrementalClean` AND `CoreClean`. This them completely messes up the DesignTime system since it can no longer find the file. So what we should be doing is making sure we don't tell the build system about the designer file ;-). We do this by not writing the path to the `$(CleanFile)`. ~~ Some background on the [DesignTime build system][2] ~~ The primary entry point is the `CoreCompile` target, with occasional calls to the `RefreshReferences` target. In theory [`$(DesignTimeBuild)`][1] should be set to `true`; however, this is not always the case which is why we have the `_SetupForDesignTimeBuild` target which hooks into the `CoreCompile` target. Additionally, `$(BuildingProject)` should be False. ([Additional information][2]). However this document is not seem to be 100% accurate since the IDE's (namely Visual Studio) do not always set the required properties. One of the key requirements for design time builds seems to be that they are independent of the main builds. The files it uses should not be removed since the `CoreCompile` target does not seem to be called consistently. For example, if the designer file is removed and the `RefreshReferences` target is called, the design time build may well fail because the targets required to re-generate the designer file are not called. Now for the problem: the `IncrementalClean` target runs between builds. It seems to want to remove files from the previous build. I suspect the purpose is to remove files that are no longer needed. (For example an assembly which is no longer referenced.) The problem is that we have a file (the design time `Resource.designer.cs`) which is not built as part of the normal build. But this file was still being written to `$(CleanFile)` which is the driver for the `IncrementalClean` process. As a result, the file gets removed because its not in the list of current `@(FileWrites)`. Not writing the name of this file to `$(CleanFile)` seems to hide it from `IncrementalClean`. There was also another problem with the `CoreClean` target. This was also removing the designer files. Again this was down to the fact that the file was listed in `$(CleanFile)`. However our older workarounds did not work since they relied on `IncrementalClean` running. For a `Clean` target invocation it does not. Again the solution seems to be Don't Write the file to `$(CleanFile)`, which is counterintuitive since we are told to write all files we generate to that file. [1]: https://github.com/dotnet/project-system/blob/master/docs/design-time-builds.md#determining-whether-a-target-is-run-in-a-design-time-build [2]: https://github.com/dotnet/project-system/blob/master/docs/design-time-builds.md commit 34f437d97d6d5f56d684af99449de49b870b32cc Author: Ludovic Henry Date: Wed Feb 14 14:05:02 2018 -0500 Bump to mono/2017-12/a0af42ab (#1263) Context: https://bugzilla.xamarin.com/show_bug.cgi?id=6339 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=6401 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=8477 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=19503 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=20562 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=31507 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=35661 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=40699 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=45893 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=49308 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=52675 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=53296 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=56003 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=56194 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=57893 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=57938 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=58261 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=58400 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=58411 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=58965 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=59080 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=59182 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=59364 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=59393 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=59608 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=59664 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=59881 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=59909 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=59913 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=59916 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=59953 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=59956 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=59967 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60028 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60029 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60115 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60175 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60216 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60224 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60233 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60238 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60245 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60255 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60267 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60288 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60298 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60317 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60340 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60422 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60435 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60505 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60514 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60539 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60545 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60634 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60680 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60771 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60860 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60865 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=60973 Context: https://bugzilla.xamarin.com/show_bug.cgi?id=61002 Bump minimum macOS Mono version to 5.10.0.47. commit f279ad30b29bb8dc6bb7bc82ae327c32781fa7fb Author: Dean Ellis Date: Wed Feb 14 15:04:45 2018 +0000 [Xamarin.Android.Build.Tasks] GetAndroidDependencies calls _SetLatestTargetFrameworkVersion (#1305) This is a bug in the `GetAndroidDependencies` target: it does not cause `MonoAndroidHelper.RefreshSupportedVersions()` to be invoked. As a result if called directly it will generate a `NullReferenceException` as `MonoAndroidHelper.SupportedVersions` will be `null`. The `GetAndroidDependencies` should thus depend upon the `_SetLatestTargetFrameworkVersion` target. This will initialize `MonoAndroidHelper.SupportedVersions`, and will also resolve the correct `$(TargetFrameworkVersion)` if the user has `$(AndroidUseLatestPlatformSdk)`=True. commit 0dee27d6cb21434fed1cf67aaf33dec2eebcef56 Author: Jonathan Pryor Date: Wed Feb 14 05:50:23 2018 -0500 [Xamarin.Android.Build.Tasks] Fragments & Shorter acw-map (#1301) Fixes: https://github.com/xamarin/xamarin-android/issues/1296 Xamarin.Android attempts to expose the Java-based Android API as a ".NET feeling" API. This takes many forms, such as prefixing interface names with `I`, mapping `get` and `set` methods to properties, mapping listener interfaces to events, and PascalCasing method names. This also affects Java package names and C# namespaces. When creating the `.apk` file, we philosophically need to go the opposite direction: PascalCased members need to be mapped to "something appropriate" within Java. For example, many Android Resource ids *must* be all lowercase, and Android doesn't support package names starting with an uppercase letter in all circumstances. At one point, we tried mapping C# PascalCased namespaces to camelCased namespaces, so e.g. `MyExampleNamespace` became the `myExampleNamesapce` Java package within Java Callable Wrappers. This turned out to be a Terrible Mistake, particularly on case-sensitive filesystems, as if casing was *inconsistent* (`MyExampleNamespace` vs `MyExamplenamespace`), files might not be packaged. By Mono for Android 1.0, we settled on just lowercasing the namespace name to produce Java package names within Android Callable Wrappers. This was not without it's own problems; in particular, the assembly name wasn't involved, so if the "same" type (namespace + type) were present in two different assemblies and we needed to generate Android Callable Wrappers, they'd "collide," the build would fail, and we'd have some unhappy customers. This was later addressed in Xamarin.Android 5.1 by changing the Java package name generation algorithm to be an MD5SUM of the assembly name and namespace name, thus allowing types to have assembly identity. (This was not without its own problems.) Then it gets slightly more complicated: Android allows type names to appear in various locations, such as in layout View XML. These don't allow "just" using the type name; the package name is required for types outside the `android.widget` Java package. Initially, we did nothing, so developers had to directly use the Android Callable Wrapper names: With the change in Xamarin.Android 5.1, *this couldn't work*; those types didn't exist anymore. To square this circle, we processed the resource files to "fixup" identifiers and replace them with the actual Android Callable Wrapper names. We'd replace any/all of: MyExampleNamespace.MyCustomCSharpView // Full name MyExampleNamespace.MyCustomCSharpView, MyAssembly // Partial assembly-qualified name MyExampleNamespace.MyCustomCSharpView, MyAssembly, Version=... // Full assembly qualified name myexamplenamespace.MyCustomCSharpView // compatibility name with the appropriate md5'd Android Callable Wrapper name. Brilliant as this was, there was a problem: [Bug #61073][61073]. If the assembly had a wildcard in the assembly version: [61073]: https://bugzilla.xamarin.com/show_bug.cgi?id=61073 [assembly: AssemblyVersion ("1.0.0.*")] then the "Full assembly qualified name" value would change on *every build*, which had numerious unintended knock-on effects. This was fixed in commit e5b1c92c, which worked largely by just killing the Full assembly qualified name version entirely. Xamarin.Android doesn't support embedding two different versions of the same assembly, so this was considered to be fine. ...except for one compatibility case: ``s can contain ~arbitrary strings, and we support replacing the entire Full assembly qualified name within them: However, in a post e5b1c92c world, the above now fails to load on the device, because it's *not* being appropriately fixed up! FATAL EXCEPTION: main Process: Mono.Samples.HelloTests, PID: 22977 java.lang.RuntimeException: Unable to start activity ComponentInfo{Mono.Samples.HelloTests/mono.samples.HelloApp}: android.view.InflateException: Binary XML file line #1: Binary XML file line #1: Error inflating class fragment ... Caused by: android.view.InflateException: Binary XML file line #1: Binary XML file line #1: Error inflating class fragment Caused by: android.view.InflateException: Binary XML file line #1: Error inflating class fragment Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment Mono.Samples.Hello.MyFragment, Hello, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: make sure class name exists, is public, and has an empty constructor that is public ... Caused by: java.lang.ClassNotFoundException: Didn't find class "Mono.Samples.Hello.MyFragment, Hello, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" on path: DexPathList[[zip file "/data/app/Mono.Samples.HelloTests-1/base.apk"],nativeLibraryDirectories=[/data/app/Mono.Samples.HelloTests-1/lib/arm64, /system/fake-libs64, /data/app/Mono.Samples.HelloTests-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]] ... The problem is that what Android "sees" *should* be where `md5whatever.MyCustomCSharpFragment` *is* a valid Java type that Android is able to load successfully, but because of e5b1c92c this replacement was removed. The fix: simplify the Full assembly-qualified name case to an already supported example. If the `//fragment/@android:name` value contains a `,`, assume it's an assembly qualified name and compute the Full name from it, by stripping off the comma and everything after it, then use the Full name to lookup the correct Android Callable Wrapper type. commit 5c46ee394d7f1d927b0ef0b05f8325a0df58d01f Author: Jonathan Pryor Date: Wed Feb 14 05:42:22 2018 -0500 [api-xml-adjuster] Fix rebuilds (#1300) Ideally, project rebuilds when nothing has changed should be *fast*. `api-xml-adjuster` isn't: $ time (cd build-tools/api-xml-adjuster ; xbuild) real 2m1.084s user 1m55.916s sys 0m8.853s # and the rebuild! $ time (cd build-tools/api-xml-adjuster ; xbuild) real 2m0.824s user 1m56.140s sys 0m8.600s A *minimum* two minute+ rebuild -- when *nothing* has changed -- is a surefire way to get really annoyed. With diagnostic logging, we start to see the culprit: Target _ClassParse needs to be built as input file '@(ApiFileDefinition -> /Volumes/Seagate4TB/work/xamarin-android/build-tools/api-xml-adjuster/../../src/Mono.Android/Profiles/api-27.params.txt)' does not exist. This in turn causes `class-parse.exe` and `api-xml-adjuster.exe` to be *re-executed* on *every* `android.jar` on *every* build. Fix this by correcting the `//Target/@Inputs` and `//Target/@Outputs` for the `_ClassParse` and `_AdjustApiXml` tasks. After which, no-change rebuilds are *significantly* faster: $ time (cd build-tools/api-xml-adjuster ; xbuild) real 0m5.308s user 0m6.042s sys 0m1.237s commit 20b4190de494e96c807c5288e573ac2e5f548b26 Author: Peter Collins Date: Tue Feb 13 12:53:26 2018 -0500 [BCL-Tests] Remove '-s' from _GrantPermissions (#1299) The [semantics of the `$(AdbTarget)` property][adb-target] are the same as the [`adb` Target Device option][adb], which permits any of: [adb-target]: Documentation/build_process.md [adb]: https://developer.android.com/studio/command-line/adb.html#issuingcommands * `-d`: Only attached *device*. * `-e`: Only attached *emulator* * `-s SERIAL_NUMBER`: A specifically named target; needed if there is more than one attached device or emulator. The problem with commit c4e81655 is that it overrode the `$(InstallDependsOnTargets)` property to call the `_GrantPermissions` target, which doesn't properly use `$(AdbTarget)`; it instead *requires* using the `-s` option, which is inconsistent: adb -s $(AdbTarget) shell pm grant ... Remove `-s` from the `adb` invocation so that `$(AdbTarget)` can contain e.g. `-d` or `-e`, as is intended & documented. commit a4ed574707da90fab341d160cabfe291555910e0 Author: Dean Ellis Date: Tue Feb 13 16:04:44 2018 +0000 [Xamarin.Android.Build.Tasks] Only report `ndk-bundle` if required. (#1298) We should only list `ndk-bundle` in the `@(AndroidDependencies)` if the user is using AOT or MkBundle. Otherwise we will end up downloading a ton of stuff we don't need. This commit fixes the `CalculateProjectDependencies` to report `ndk-bundle` if needed. It also adds a unit test to make sure it is not included when it shouldn't be. commit cb68bc3b4c3a9d040dfb10cbb1e599d854c846de Author: Jonathan Pryor Date: Mon Feb 12 17:58:59 2018 -0500 Bump to Java.Interop/master/10647a5e (#1295) Fixes the `ObjectDisposedException` during process shutdown described in commit 0a9d1641. Moves the `ManagedPeer.Init()` invocation within the `JniRuntime` constructor so that a `NullReferenceException` is avoided. (Instead, a *different*, more meaningful exception should be thrown.) Bumps to cecil/mono-2017-12/1afa0668 for d15-7 harmonization. commit f9b2c972263f279aba52919d2b442a319d7c7ad0 Author: Dean Ellis Date: Mon Feb 12 16:20:35 2018 +0000 [Xamarin.Android.Build.Tasks] Add GetAndroidDependencies Target (#1290) Fixes: https://github.com/xamarin/xamarin-android/issues/1269 This commit adds the `GetAndroidDependencies` target to the `Xamarin.Android.Common.targets`. Its purpose is to examine the various settings in the project and report which Android SDK build-tools, platform-tools, etc. are required. `GetAndroidDependencies` will output an `@(AndroidDependency)` with `%(AndroidDependency.Version)` metadata. `@(AndroidDependency)` will contain `%(Identity)` values of: * `build-tools;{VERSION}`, where `{VERSION}` and `%(Version)` is controlled by the `$(AndroidSdkBuildToolsVersion)` property. * `ndk-bundle`: `%(Version)` is controlled by the `$(AndroidNdkVersion)` property. * `platform-tools`: `%(Version)` is controlled by the `$(AndroidSdkPlatformToolsVersion)` property. * `platforms;android-{API}`, where `{API}` and `%(Version)` is the API level for the `$(TargetFrameworkVersion)` in the `.csproj`. For example, `platforms;android-27` for `$(TargetFrameworkVersion)`=`v7.1`. * `tools`: `%(Version)` is controlled by the `$(AndroidSdkToolsVersion)` property. commit 0d822e20be3a0185af76590a1a359337de983482 Author: Jonathan Pryor Date: Mon Feb 12 10:39:48 2018 -0500 [Xamarin.Android.Build.Tasks] Improve `javac -version` parsing (#1292) The [Ubuntu build][0] is [failing][1]: warning : Failed to get the Java SDK version as it does not appear to contain a valid version number. `javac -version` returned: ```openjdk version "1.8.0_03-Ubuntu" OpenJDK Runtime Environment (build 1.8.0_03-Ubuntu-8u77-b03-3ubuntu3-b03) OpenJDK 64-Bit Server VM (build 25.03-b03, mixed mode) ``` ... Task "AdjustJavacVersionArguments" …/bin/Debug/lib/xamarin.android/xbuild/Xamarin/Android/Xamarin.Android.Common.targets: error : Error executing task AdjustJavacVersionArguments: Required property 'JdkVersion' not set. [0]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android-linux/779/ [1]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android-linux/779/consoleText This was introduced/broken by commit 0e1d1c8a, which turned `AdjustJavacVersionArguments.JdkVersion` into a `[Required]` parameter. The value for `AdjustJavacVersionArguments.JdkVersion` comes from the `` task `JdkVersion` output parameter, which itself comes from parsing `javac -version` output. The problem is that the regex we used to parse the output of `javac -version` wasn't properly parsing the output on Ubuntu: openjdk version "1.8.0_03-Ubuntu" Specifically, the `-Ubuntu` text was causing the regex to not match. Update the regex to be a bit more lenient, enabling it to work with the Ubuntu `javac -version` output, which *should* allow the build to progress further. commit 0114586eb0429bdd4dc018754c89d68cf462c608 Author: Jonathan Peppers Date: Sun Feb 11 12:53:52 2018 -0600 [build] fix api-xml-adjuster.targets on Windows (#1291) Since 7d705bf, the Windows builds on VSTS have seemed to be failing. I tested this locally, and noticed the use of command line arguments such as: -parameter-names='%(SomeVariable)' Unfortunately, this isn't working on Windows due to the single quote. It is more appropriately expressed as: -parameter-names="%(SomeVariable)" This isn't very pretty, but it should work on all platforms. I also fixed all the tabs I saw in this file--in favor of spaces, and fixed other XML code conventions. I will now return to my regularly scheduled baby duty. --- .gitmodules | 2 +- Configuration.props | 2 +- .../api-xml-adjuster/api-xml-adjuster.targets | 25 ++-- .../mono-runtimes/mono-runtimes.targets | 5 +- external/xamarin-android-api-compatibility | 2 +- .../Xamarin.Android.Windows.targets | 2 +- .../Tasks/CalculateProjectDependencies.cs | 69 +++++++++ .../Tasks/ResolveSdksTask.cs | 2 +- .../AndroidUpdateResourcesTest.cs | 6 +- .../GetDependenciesTests.cs | 137 ++++++++++++++++++ .../IncrementalBuildTest.cs | 41 ++++++ .../ResolveSdksTaskTests.cs | 80 ++++++++++ .../Utilities/BaseTest.cs | 26 +++- .../Utilities/MockBuildEngine.cs | 84 +++++++++++ ...marin.Android.Build.Tests.Shared.projitems | 3 +- .../Xamarin.Android.Build.Tests.csproj | 2 + .../Utilities/AndroidResource.cs | 9 ++ .../Xamarin.Android.Bindings.targets | 2 +- .../Xamarin.Android.Build.Tasks.csproj | 7 + .../Xamarin.Android.Common.targets | 30 +++- .../Xamarin.Android.Bcl-Tests.csproj | 2 +- .../Xamarin.Android.Bcl-Tests.targets | 8 +- 22 files changed, 509 insertions(+), 37 deletions(-) create mode 100644 src/Xamarin.Android.Build.Tasks/Tasks/CalculateProjectDependencies.cs create mode 100644 src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/GetDependenciesTests.cs create mode 100644 src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/ResolveSdksTaskTests.cs create mode 100644 src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Utilities/MockBuildEngine.cs diff --git a/.gitmodules b/.gitmodules index 671292c3d54..c642ce9927b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -36,7 +36,7 @@ [submodule "external/xamarin-android-api-compatibility"] path = external/xamarin-android-api-compatibility url = https://github.com/xamarin/xamarin-android-api-compatibility.git - branch = d15-6 + branch = d15-7 [submodule "external/xamarin-android-tools"] path = external/xamarin-android-tools url = https://github.com/xamarin/xamarin-android-tools diff --git a/Configuration.props b/Configuration.props index 54a0d223173..fb06e3dbae4 100644 --- a/Configuration.props +++ b/Configuration.props @@ -12,7 +12,7 @@ Condition=" Exists('$(MSBuildThisFileDirectory)Configuration.OperatingSystem.props') And '$(DoNotLoadOSProperties)' != 'True' " /> - 8.2.99 + 8.3.99 27 v8.1 diff --git a/build-tools/api-xml-adjuster/api-xml-adjuster.targets b/build-tools/api-xml-adjuster/api-xml-adjuster.targets index b0d7d47ba6e..a469c9782e4 100644 --- a/build-tools/api-xml-adjuster/api-xml-adjuster.targets +++ b/build-tools/api-xml-adjuster/api-xml-adjuster.targets @@ -8,43 +8,42 @@ - - - + + + + Inputs="%(ApiFileDefinition.ParameterDescription)" + Outputs="%(ApiFileDefinition.ClassParseXml)"> $(_TopDir)\bin\$(Configuration)\lib\xamarin.android\xbuild\Xamarin\Android\class-parse.exe + Inputs="%(ApiFileDefinition.ClassParseXml)" + Outputs="%(ApiFileDefinition.ApiAdjustedXml)"> $(_TopDir)\bin\Build$(Configuration)\api-xml-adjuster.exe + BeforeTargets="Clean"> diff --git a/build-tools/mono-runtimes/mono-runtimes.targets b/build-tools/mono-runtimes/mono-runtimes.targets index 570ca757c1d..d77c6c86cb2 100644 --- a/build-tools/mono-runtimes/mono-runtimes.targets +++ b/build-tools/mono-runtimes/mono-runtimes.targets @@ -58,7 +58,10 @@ <_BclExcludeDebugSymbols Include="System.Windows.dll" /> <_BclExcludeDebugSymbols Include="System.Xml.Serialization.dll" /> <_BclTestAssemblyDestination Include="@(MonoTestAssembly->'$(XAInstallPrefix)\..\..\bcl-tests\%(Identity)')" /> - <_BclTestAssemblyDestination Include="@(MonoTestAssembly->'$(XAInstallPrefix)\..\..\bcl-tests\%(Filename).pdb')" /> + <_BclTestAssemblyDestination + Include="@(MonoTestAssembly->'$(XAInstallPrefix)\..\..\bcl-tests\%(Filename).pdb')" + Exclude="$(XAInstallPrefix)\..\..\bcl-tests\System.Runtime.CompilerServices.Unsafe.pdb" + /> <_BclTestAssemblyDestination Include="@(MonoTestRunner->'$(XAInstallPrefix)\..\..\bcl-tests\%(Identity)')" /> <_BclTestAssemblyDestination Include="@(MonoTestRunner->'$(XAInstallPrefix)\..\..\bcl-tests\%(Filename).pdb')" /> diff --git a/external/xamarin-android-api-compatibility b/external/xamarin-android-api-compatibility index 9d71e200708..dc5f0c2e475 160000 --- a/external/xamarin-android-api-compatibility +++ b/external/xamarin-android-api-compatibility @@ -1 +1 @@ -Subproject commit 9d71e2007086737881c8085afd91fc0a5c9a1e6c +Subproject commit dc5f0c2e4751373c56485caff55db4236f456f68 diff --git a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Common/ImportAfter/Xamarin.Android.Windows.targets b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Common/ImportAfter/Xamarin.Android.Windows.targets index 7b16e67727c..623dda9c056 100644 --- a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Common/ImportAfter/Xamarin.Android.Windows.targets +++ b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Common/ImportAfter/Xamarin.Android.Windows.targets @@ -15,7 +15,7 @@ Copyright (C) 2014 Xamarin. All rights reserved. - + { + { "Version", version } + }); + } + + public override bool Execute () + { + var dependencies = new List (); + var targetApiLevel = MonoAndroidHelper.SupportedVersions.GetApiLevelFromFrameworkVersion (TargetFrameworkVersion); + var manifestApiLevel = DefaultMinSDKVersion; + if (File.Exists (ManifestFile.ItemSpec)) { + var manifest = AndroidAppManifest.Load (ManifestFile.ItemSpec, MonoAndroidHelper.SupportedVersions); + manifestApiLevel = manifest.TargetSdkVersion ?? manifest.MinSdkVersion ?? DefaultMinSDKVersion; + } + var sdkVersion = Math.Max (targetApiLevel.Value, manifestApiLevel); + dependencies.Add (CreateAndroidDependency ($"platforms/android-{sdkVersion}", $"")); + dependencies.Add (CreateAndroidDependency ($"build-tools/{BuildToolsVersion}", BuildToolsVersion)); + if (!string.IsNullOrEmpty (PlatformToolsVersion)) { + dependencies.Add (CreateAndroidDependency ("platform-tools", PlatformToolsVersion)); + } + if (!string.IsNullOrEmpty (ToolsVersion)) { + dependencies.Add (CreateAndroidDependency ("tools", ToolsVersion)); + } + if (!string.IsNullOrEmpty (NdkVersion) && NdkRequired) { + dependencies.Add (CreateAndroidDependency ("ndk-bundle", NdkVersion)); + } + Dependencies = dependencies.ToArray (); + return !Log.HasLoggedErrors; + } + } +} diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/ResolveSdksTask.cs b/src/Xamarin.Android.Build.Tasks/Tasks/ResolveSdksTask.cs index 4239eae4ec3..55d83778b33 100644 --- a/src/Xamarin.Android.Build.Tasks/Tasks/ResolveSdksTask.cs +++ b/src/Xamarin.Android.Build.Tasks/Tasks/ResolveSdksTask.cs @@ -332,7 +332,7 @@ public bool RunTask () // `java -version` will produce values such as: // java version "9.0.4" // java version "1.8.0_77" - static readonly Regex javaVersionRegex = new Regex (@"version ""(?[\d\.]+)(_\d+)?"""); + static readonly Regex javaVersionRegex = new Regex (@"version ""(?[\d\.]+)(_d+)?[^""]*"""); Version GetJavaVersionForFramework (string targetFrameworkVersion) { diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs index 7970c43c3a1..c51ba0e5c8b 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs @@ -1016,7 +1016,7 @@ public void BuildAppWithManagedResourceParser() "Target '_ManagedUpdateAndroidResgen' should not have run."); Assert.IsTrue (appBuilder.Clean (appProj), "Clean should have succeeded"); - Assert.IsFalse (File.Exists (designerFile), $"'{designerFile}' should have been cleaned."); + Assert.IsTrue (File.Exists (designerFile), $"'{designerFile}' should not have been cleaned."); } } @@ -1112,10 +1112,10 @@ public void BuildAppWithManagedResourceParserAndLibraries () Assert.IsTrue (appBuilder.Clean (appProj), "Clean should have succeeded"); - Assert.IsFalse (File.Exists (designerFile), $"'{designerFile}' should have been cleaned."); + Assert.IsTrue (File.Exists (designerFile), $"'{designerFile}' should not have been cleaned."); designerFile = Path.Combine (Root, path, libProj.ProjectName, libProj.IntermediateOutputPath, "designtime", "Resource.Designer.cs"); Assert.IsTrue (libBuilder.Clean (libProj), "Clean should have succeeded"); - Assert.IsFalse (File.Exists (designerFile), $"'{designerFile}' should have been cleaned."); + Assert.IsTrue (File.Exists (designerFile), $"'{designerFile}' should not have been cleaned."); } diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/GetDependenciesTests.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/GetDependenciesTests.cs new file mode 100644 index 00000000000..1af4d3ca7d1 --- /dev/null +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/GetDependenciesTests.cs @@ -0,0 +1,137 @@ +using System; +using NUnit.Framework; +using Xamarin.ProjectTools; +using System.IO; +using System.Linq; +using Microsoft.Build.Framework; +using System.Text; +using Xamarin.Android.Tasks; +using Microsoft.Build.Utilities; + +namespace Xamarin.Android.Build.Tests { + + [TestFixture] + [Parallelizable (ParallelScope.Children)] + public class GetDependenciesTest : BaseTest { + + [Test] + public void CheckNdkBundle ([Values(true, false)] bool ndkRequred) + { + var path = Path.Combine ("temp", TestName); + var referencePath = CreateFauxReferencesDirectory (Path.Combine (path, "references"), new ApiInfo [] { + new ApiInfo () { Id = 26, Level = 26, Name = "Oreo", FrameworkVersion = "v8.0", Stable = true }, + }); + MonoAndroidHelper.RefreshSupportedVersions (new string [] { referencePath }); + IBuildEngine engine = new MockBuildEngine (TestContext.Out); + var task = new CalculateProjectDependencies { + BuildEngine = engine + }; + + task.PlatformToolsVersion = "26.0.3"; + task.ToolsVersion = "26.0.1"; + task.NdkVersion = "12.1"; + task.NdkRequired = ndkRequred; + task.BuildToolsVersion = "26.0.1"; + task.TargetFrameworkVersion = "v8.0"; + task.ManifestFile = new TaskItem (Path.Combine (path, "AndroidManifest.xml")); + Assert.IsTrue (task.Execute ()); + Assert.IsNotNull (task.Dependencies); + Assert.AreEqual (ndkRequred ? 5 : 4, task.Dependencies.Length); + Assert.IsNotNull (task.Dependencies.FirstOrDefault (x => x.ItemSpec == "build-tools/26.0.1" && x.GetMetadata ("Version") == "26.0.1"), + "Dependencies should contains a build-tools version 26.0.1"); + Assert.IsNotNull (task.Dependencies.FirstOrDefault (x => x.ItemSpec == "tools" && x.GetMetadata ("Version") == "26.0.1"), + "Dependencies should contains a tools version 26.0.1"); + Assert.IsNotNull (task.Dependencies.FirstOrDefault (x => x.ItemSpec == "platforms/android-26" && x.GetMetadata ("Version") == ""), + "Dependencies should contains a platform version android-26"); + Assert.IsNotNull (task.Dependencies.FirstOrDefault (x => x.ItemSpec == "platform-tools" && x.GetMetadata ("Version") == "26.0.3"), + "Dependencies should contains a platform-tools version 26.0.3"); + if (ndkRequred) { + Assert.IsNotNull (task.Dependencies.FirstOrDefault (x => x.ItemSpec == "ndk-bundle" && x.GetMetadata ("Version") == "12.1"), + "Dependencies should contain a ndk-bundle version 12.1"); + } else { + Assert.IsNull (task.Dependencies.FirstOrDefault (x => x.ItemSpec == "ndk-bundle"), + "Dependencies should not contain a ndk-bundle item"); + } + } + + [Test] + public void ManifestFileDoesNotExist () + { + var path = Path.Combine ("temp", TestName); + var referencePath = CreateFauxReferencesDirectory (Path.Combine (path, "references"), new ApiInfo[] { + new ApiInfo () { Id = 26, Level = 26, Name = "Oreo", FrameworkVersion = "v8.0", Stable = true }, + } ); + MonoAndroidHelper.RefreshSupportedVersions (new string [] { referencePath }); + IBuildEngine engine = new MockBuildEngine (TestContext.Out); + var task = new CalculateProjectDependencies { + BuildEngine = engine + }; + + task.PlatformToolsVersion = "26.0.3"; + task.ToolsVersion = "26.0.1"; + task.NdkVersion = "12.1"; + task.NdkRequired = true; + task.BuildToolsVersion = "26.0.1"; + task.TargetFrameworkVersion = "v8.0"; + task.ManifestFile = new TaskItem (Path.Combine (path, "AndroidManifest.xml")); + Assert.IsTrue (task.Execute ()); + Assert.IsNotNull (task.Dependencies); + Assert.AreEqual (5, task.Dependencies.Length); + Assert.IsNotNull (task.Dependencies.FirstOrDefault (x => x.ItemSpec == "build-tools/26.0.1" && x.GetMetadata ("Version") == "26.0.1"), + "Dependencies should contains a build-tools version 26.0.1"); + Assert.IsNotNull (task.Dependencies.FirstOrDefault (x => x.ItemSpec == "tools" && x.GetMetadata ("Version") == "26.0.1"), + "Dependencies should contains a tools version 26.0.1"); + Assert.IsNotNull (task.Dependencies.FirstOrDefault (x => x.ItemSpec == "platforms/android-26" && x.GetMetadata ("Version") == ""), + "Dependencies should contains a platform version android-26"); + Assert.IsNotNull (task.Dependencies.FirstOrDefault (x => x.ItemSpec == "platform-tools" && x.GetMetadata ("Version") == "26.0.3"), + "Dependencies should contains a platform-tools version 26.0.3"); + Assert.IsNotNull (task.Dependencies.FirstOrDefault (x => x.ItemSpec == "ndk-bundle" && x.GetMetadata ("Version") == "12.1"), + "Dependencies should contains a ndk-bundle version 12.1"); + } + + [Test] + public void ManifestFileExists () + { + var path = Path.Combine (Root, "temp", TestName); + var referencePath = CreateFauxReferencesDirectory (Path.Combine (path, "references"), new ApiInfo[] { + new ApiInfo () { Id = 26, Level = 26, Name = "Oreo", FrameworkVersion = "v8.0", Stable = true }, + } ); + MonoAndroidHelper.RefreshSupportedVersions (new string [] { referencePath }); + IBuildEngine engine = new MockBuildEngine (TestContext.Out); + var task = new CalculateProjectDependencies { + BuildEngine = engine + }; + + + Directory.CreateDirectory (path); + var manifestFile = Path.Combine (path, "AndroidManifest.xml"); + File.WriteAllText (manifestFile, @" + + +"); + + task.PlatformToolsVersion = "26.0.3"; + task.ToolsVersion = "26.0.1"; + task.NdkVersion = "12.1"; + task.NdkRequired = true; + task.BuildToolsVersion = "26.0.1"; + task.TargetFrameworkVersion = "v8.0"; + task.ManifestFile = new TaskItem (manifestFile); + Assert.IsTrue(task.Execute ()); + Assert.IsNotNull (task.Dependencies); + Assert.AreEqual (5, task.Dependencies.Length); + Assert.IsNotNull (task.Dependencies.FirstOrDefault (x => x.ItemSpec == "build-tools/26.0.1" && x.GetMetadata ("Version") == "26.0.1"), + "Dependencies should contains a build-tools version 26.0.1"); + Assert.IsNotNull (task.Dependencies.FirstOrDefault (x => x.ItemSpec == "tools" && x.GetMetadata ("Version") == "26.0.1"), + "Dependencies should contains a tools version 26.0.1"); + Assert.IsNotNull (task.Dependencies.FirstOrDefault (x => x.ItemSpec == "platforms/android-26" && x.GetMetadata ("Version") == ""), + "Dependencies should contains a platform version android-26"); + Assert.IsNotNull (task.Dependencies.FirstOrDefault (x => x.ItemSpec == "platform-tools" && x.GetMetadata ("Version") == "26.0.3"), + "Dependencies should contains a platform-tools version 26.0.3"); + Assert.IsNotNull (task.Dependencies.FirstOrDefault (x => x.ItemSpec == "ndk-bundle" && x.GetMetadata ("Version") == "12.1"), + "Dependencies should contains a ndk-bundle version 12.1"); + + Directory.Delete (path, recursive: true); + } + } +} diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs index e3f81e71919..0ff5e01d6b6 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs @@ -12,6 +12,47 @@ namespace Xamarin.Android.Build.Tests [Parallelizable (ParallelScope.Children)] public class IncrementalBuildTest : BaseTest { + [Test] + public void IncrementalCleanDuringClean () + { + var path = Path.Combine ("temp", TestName); + var proj = new XamarinAndroidApplicationProject () { + ProjectName = "App1", + IsRelease = true, + }; + proj.SetProperty ("AndroidUseManagedDesignTimeResourceGenerator", "True"); + proj.SetProperty ("BuildingInsideVisualStudio", "True"); + using (var b = CreateApkBuilder (path)) { + b.Target = "Compile"; + Assert.IsTrue(b.Build (proj), "DesignTime Build should have succeeded"); + var designTimeDesigner = Path.Combine (Root, b.ProjectDirectory, proj.IntermediateOutputPath, "designtime", "Resource.designer.cs"); + FileAssert.Exists (designTimeDesigner, $"{designTimeDesigner} should have been created."); + b.Target = "Build"; + Assert.IsTrue(b.Build (proj), "Build should have succeeded"); + FileAssert.Exists (designTimeDesigner, $"{designTimeDesigner} should still exist after Build."); + b.Target = "Clean"; + Assert.IsTrue(b.Build (proj), "Clean should have succeeded"); + FileAssert.Exists (designTimeDesigner, $"{designTimeDesigner} should still exist after Clean."); + b.Target = "Compile"; + Assert.IsTrue(b.Build (proj), "Build should have succeeded"); + FileAssert.Exists (designTimeDesigner, $"{designTimeDesigner} should still exist after Compile."); + b.Target = "Build"; + Assert.IsTrue(b.Build (proj), "Build should have succeeded"); + FileAssert.Exists (designTimeDesigner, $"{designTimeDesigner} should still exist after second Build."); + Assert.IsTrue(b.Build (proj), "Build should have succeeded"); + FileAssert.Exists (designTimeDesigner, $"{designTimeDesigner} should still exist after third Build."); + b.Target = "Compile"; + Assert.IsTrue(b.Build (proj), "Build should have succeeded"); + FileAssert.Exists (designTimeDesigner, $"{designTimeDesigner} should still exist after second Compile."); + b.Target = "Clean"; + Assert.IsTrue(b.Build (proj), "Clean should have succeeded"); + FileAssert.Exists (designTimeDesigner, $"{designTimeDesigner} should still exist after second Clean."); + b.Target = "ReBuild"; + Assert.IsTrue(b.Build (proj), "ReBuild should have succeeded"); + FileAssert.Exists (designTimeDesigner, $"{designTimeDesigner} should still exist after ReBuild."); + } + + } [Test] public void LibraryIncrementalBuild () { diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/ResolveSdksTaskTests.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/ResolveSdksTaskTests.cs new file mode 100644 index 00000000000..e642d56ec4e --- /dev/null +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/ResolveSdksTaskTests.cs @@ -0,0 +1,80 @@ +using System; +using NUnit.Framework; +using Xamarin.ProjectTools; +using System.IO; +using System.Linq; +using Microsoft.Build.Framework; +using System.Text; +using Xamarin.Android.Tasks; +using Microsoft.Build.Utilities; + +namespace Xamarin.Android.Build.Tests { + + [TestFixture] + [Parallelizable (ParallelScope.Children)] + public class ResolveSdksTaskTests : BaseTest { + [Test] + public void ResolveSdkTiming () + { + var path = Path.Combine ("temp", TestName); + var androidSdkPath = CreateFauxAndroidSdkDirectory (Path.Combine (path, "android-sdk"), "26.0.3"); + string javaExe = string.Empty; + var javaPath = CreateFauxJavaSdkDirectory (Path.Combine (path, "jdk"), "1.8.0", out javaExe); + var referencePath = CreateFauxReferencesDirectory (Path.Combine (path, "references"), new ApiInfo [] { + new ApiInfo () { Id = 26, Level = 26, Name = "Oreo", FrameworkVersion = "v8.0", Stable = true }, + new ApiInfo () { Id = 27, Level = 27, Name = "Oreo", FrameworkVersion = "v8.1", Stable = true }, + }); + IBuildEngine engine = new MockBuildEngine (TestContext.Out); + var task = new ResolveSdks { + BuildEngine = engine + }; + task.AndroidSdkPath = androidSdkPath; + task.AndroidNdkPath = androidSdkPath; + task.JavaSdkPath = javaPath; + task.TargetFrameworkVersion = "v8.0"; + task.AndroidSdkBuildToolsVersion = "26.0.3"; + task.BuildingInsideVisualStudio = "true"; + task.UseLatestAndroidPlatformSdk = false; + task.AotAssemblies = false; + task.LatestSupportedJavaVersion = "1.8.0"; + task.MinimumSupportedJavaVersion = "1.7.0"; + task.ReferenceAssemblyPaths = new string [] { + Path.Combine (referencePath, "MonoAndroid"), + }; + task.CacheFile = Path.Combine (Root, path, "sdk.xml"); + task.SequencePointsMode = "None"; + task.JavaToolExe = javaExe; + var start = DateTime.UtcNow; + Assert.IsTrue (task.Execute ()); + var executionTime = DateTime.UtcNow - start; + Assert.LessOrEqual (executionTime, TimeSpan.FromSeconds(1), "Task should not take more than 1 second to run."); + Assert.AreEqual (task.AndroidApiLevel, "26", "AndroidApiLevel should be 26"); + Assert.AreEqual (task.TargetFrameworkVersion, "v8.0", "TargetFrameworkVersion should be v8.0"); + Assert.AreEqual (task.AndroidApiLevelName, "26", "AndroidApiLevelName should be 26"); + Assert.AreEqual (task.SupportedApiLevel, "26", "SupportedApiLevel should be 26"); + Assert.NotNull (task.ReferenceAssemblyPaths, "ReferenceAssemblyPaths should not be null."); + Assert.AreEqual (task.ReferenceAssemblyPaths.Length, 1, "ReferenceAssemblyPaths should have 1 entry."); + Assert.AreEqual (task.ReferenceAssemblyPaths[0], Path.Combine (referencePath, "MonoAndroid"), $"ReferenceAssemblyPaths should be {Path.Combine (referencePath, "MonoAndroid")}."); + var expected = Path.Combine (Root); + Assert.AreEqual (task.MonoAndroidToolsPath, expected, $"MonoAndroidToolsPath should be {expected}"); + expected = Path.Combine (Root, "Darwin" + Path.DirectorySeparatorChar); + Assert.AreEqual (task.MonoAndroidBinPath, expected, $"MonoAndroidBinPath should be {expected}"); + Assert.AreEqual (task.MonoAndroidIncludePath, null, "MonoAndroidIncludePath should be null"); + //Assert.AreEqual (task.AndroidNdkPath, "26", "AndroidNdkPath should be 26"); + Assert.AreEqual (task.AndroidSdkPath, androidSdkPath, $"AndroidSdkPath should be {androidSdkPath}"); + Assert.AreEqual (task.JavaSdkPath, javaPath, $"JavaSdkPath should be {javaPath}"); + expected = Path.Combine (androidSdkPath, "build-tools", "26.0.3"); + Assert.AreEqual (task.AndroidSdkBuildToolsPath, expected, $"AndroidSdkBuildToolsPath should be {expected}"); + Assert.AreEqual (task.AndroidSdkBuildToolsBinPath, expected, "AndroidSdkBuildToolsBinPath should be {expected}"); + Assert.AreEqual (task.ZipAlignPath, expected, "ZipAlignPath should be {expected}"); + Assert.AreEqual (task.AndroidSequencePointsMode, "None", "AndroidSequencePointsMode should be None"); + expected = Path.Combine (androidSdkPath, "tools"); + Assert.AreEqual (task.LintToolPath, expected, $"LintToolPath should be {expected}"); + expected = Path.Combine (androidSdkPath, "build-tools", "26.0.3", "lib", "apksigner.jar"); + Assert.AreEqual (task.ApkSignerJar, expected, $"ApkSignerJar should be {expected}"); + Assert.AreEqual (task.AndroidUseApkSigner, false, "AndroidUseApkSigner should be false"); + Assert.AreEqual (task.JdkVersion, "1.8.0", "JdkVersion should be 1.8.0"); + Assert.AreEqual (task.MinimumRequiredJdkVersion, "1.8", "MinimumRequiredJdkVersion should be 1.8"); + } + } +} diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Utilities/BaseTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Utilities/BaseTest.cs index d7160c07e37..41858b33412 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Utilities/BaseTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Utilities/BaseTest.cs @@ -122,6 +122,7 @@ protected string CreateFauxAndroidSdkDirectory (string path, string buildToolsVe File.WriteAllText (Path.Combine (androidSdkPlatformToolsPath, IsWindows ? "adb.exe" : "adb"), ""); File.WriteAllText (Path.Combine (androidSdkBuildToolsPath, IsWindows ? "zipalign.exe" : "zipalign"), ""); File.WriteAllText (Path.Combine (androidSdkBuildToolsPath, IsWindows ? "aapt.exe" : "aapt"), ""); + File.WriteAllText (Path.Combine (androidSdkToolsPath, IsWindows ? "lint.exe" : "lint"), ""); for (int i=minApiLevel; i < maxApiLevel; i++) { var dir = Path.Combine (androidSdkPlatformsPath, $"android-{i}"); @@ -131,14 +132,29 @@ protected string CreateFauxAndroidSdkDirectory (string path, string buildToolsVe return androidSdkDirectory; } - protected string CreateFauxReferencesDirectory (string path, string[] versions) + public struct ApiInfo { + public int Id; + public int Level; + public string Name; + public string FrameworkVersion; + public bool Stable; + } + + protected string CreateFauxReferencesDirectory (string path, ApiInfo [] versions) { + string referencesDirectory = Path.Combine (Root, path); Directory.CreateDirectory (referencesDirectory); - Directory.CreateDirectory (Path.Combine (referencesDirectory, "v1.0")); - File.WriteAllText (Path.Combine (referencesDirectory, "v1.0", "mscorlib.dll"), ""); - foreach (var v in versions){ - Directory.CreateDirectory (Path.Combine (referencesDirectory, v)); + Directory.CreateDirectory (Path.Combine (referencesDirectory, "MonoAndroid", "v1.0")); + File.WriteAllText (Path.Combine (referencesDirectory, "MonoAndroid", "v1.0", "mscorlib.dll"), ""); + foreach (var v in versions) { + Directory.CreateDirectory (Path.Combine (referencesDirectory, "MonoAndroid", v.FrameworkVersion)); + Directory.CreateDirectory (Path.Combine (referencesDirectory, "MonoAndroid", v.FrameworkVersion, "RedistList")); + File.WriteAllText (Path.Combine (referencesDirectory, "MonoAndroid", v.FrameworkVersion, "MonoAndroid.dll"), ""); + File.WriteAllText (Path.Combine (referencesDirectory, "MonoAndroid", v.FrameworkVersion, "AndroidApiInfo.xml"), + $"\n{v.Id}\n{v.Level}\n{v.Name}\n{v.FrameworkVersion}\n{v.Stable}\n"); + File.WriteAllText (Path.Combine (referencesDirectory, "MonoAndroid", v.FrameworkVersion, "RedistList", "FrameworkList.xml"), + $""); } return referencesDirectory; } diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Utilities/MockBuildEngine.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Utilities/MockBuildEngine.cs new file mode 100644 index 00000000000..38f36c65d7e --- /dev/null +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Utilities/MockBuildEngine.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using Microsoft.Build.Framework; + +namespace Xamarin.Android.Build.Tests { + public class MockBuildEngine : IBuildEngine, IBuildEngine2, IBuildEngine3, IBuildEngine4 { + public MockBuildEngine (TextWriter output) + { + this.Output = output; + } + + private TextWriter Output { get; } + + int IBuildEngine.ColumnNumberOfTaskNode => -1; + + bool IBuildEngine.ContinueOnError => false; + + int IBuildEngine.LineNumberOfTaskNode => -1; + + string IBuildEngine.ProjectFileOfTaskNode => "this.xml"; + + bool IBuildEngine2.IsRunningMultipleNodes => false; + + bool IBuildEngine.BuildProjectFile (string projectFileName, string [] targetNames, IDictionary globalProperties, IDictionary targetOutputs) => true; + + void IBuildEngine.LogCustomEvent (CustomBuildEventArgs e) + { + this.Output.WriteLine ($"Custom: {e.Message}"); + } + + void IBuildEngine.LogErrorEvent (BuildErrorEventArgs e) + { + this.Output.WriteLine ($"Error: {e.Message}"); + } + + void IBuildEngine.LogMessageEvent (BuildMessageEventArgs e) + { + this.Output.WriteLine ($"Message: {e.Message}"); + } + + void IBuildEngine.LogWarningEvent (BuildWarningEventArgs e) + { + this.Output.WriteLine ($"Warning: {e.Message}"); + } + + private Dictionary Tasks = new Dictionary (); + + void IBuildEngine4.RegisterTaskObject (object key, object obj, RegisteredTaskObjectLifetime lifetime, bool allowEarlyCollection) + { + Tasks.Add (key, obj); + } + + object IBuildEngine4.GetRegisteredTaskObject (object key, RegisteredTaskObjectLifetime lifetime) + { + return null; + } + + object IBuildEngine4.UnregisterTaskObject (object key, RegisteredTaskObjectLifetime lifetime) + { + var obj = Tasks [key]; + Tasks.Remove (key); + return obj; + } + + BuildEngineResult IBuildEngine3.BuildProjectFilesInParallel (string [] projectFileNames, string [] targetNames, IDictionary [] globalProperties, IList [] removeGlobalProperties, string [] toolsVersion, bool returnTargetOutputs) + { + throw new NotImplementedException (); + } + + void IBuildEngine3.Yield () { } + + void IBuildEngine3.Reacquire () { } + + bool IBuildEngine2.BuildProjectFile (string projectFileName, string [] targetNames, IDictionary globalProperties, IDictionary targetOutputs, string toolsVersion) => true; + + bool IBuildEngine2.BuildProjectFilesInParallel (string [] projectFileNames, string [] targetNames, IDictionary [] globalProperties, IDictionary [] targetOutputsPerProject, string [] toolsVersion, bool useResultsCache, bool unloadProjectsOnCompletion) => true; + } +} diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Xamarin.Android.Build.Tests.Shared.projitems b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Xamarin.Android.Build.Tests.Shared.projitems index fb84fb55378..4caedf0eed4 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Xamarin.Android.Build.Tests.Shared.projitems +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Xamarin.Android.Build.Tests.Shared.projitems @@ -19,8 +19,9 @@ + - \ No newline at end of file + diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Xamarin.Android.Build.Tests.csproj b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Xamarin.Android.Build.Tests.csproj index 9a04c0c8228..c46e853f7be 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Xamarin.Android.Build.Tests.csproj +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Xamarin.Android.Build.Tests.csproj @@ -72,5 +72,7 @@ + + diff --git a/src/Xamarin.Android.Build.Tasks/Utilities/AndroidResource.cs b/src/Xamarin.Android.Build.Tasks/Utilities/AndroidResource.cs index 629be141b66..e9bcb993d9b 100644 --- a/src/Xamarin.Android.Build.Tasks/Utilities/AndroidResource.cs +++ b/src/Xamarin.Android.Build.Tasks/Utilities/AndroidResource.cs @@ -192,6 +192,15 @@ private static bool TryFixFragment (XAttribute attr, Dictionary return true; } + else if (attr.Value?.Contains (',') ?? false) { + // attr.Value could be an assembly-qualified name that isn't in acw-map.txt; + // see e5b1c92c, https://github.com/xamarin/xamarin-android/issues/1296#issuecomment-365091948 + var n = attr.Value.Substring (0, attr.Value.IndexOf (',')); + if (acwMap.ContainsKey (n)) { + attr.Value = acwMap [n]; + return true; + } + } } return false; diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets index 7fa25ab2f9f..d7893fef261 100755 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets @@ -82,7 +82,7 @@ Copyright (C) 2012 Xamarin Inc. All rights reserved. - + diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj index 95e3703482d..41f9f0c9af6 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj @@ -187,6 +187,7 @@ + pdb2mdb\BitAccess.cs @@ -370,6 +371,12 @@ Linker\Linker\MarkingHelpers.cs + + Linker\Mono.Linker\MarkingHelpers.cs + + + Linker\Mono.Linker\Tracer.cs + diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index f000033f5b6..c95775e935b 100755 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -32,6 +32,7 @@ Copyright (C) 2011-2012 Xamarin. All rights reserved. + @@ -237,7 +238,7 @@ Copyright (C) 2011-2012 Xamarin. All rights reserved. 27.0.3 27.0.1 26.1.1 - r14b + 16.1 None @@ -1115,11 +1116,6 @@ because xbuild doesn't support framework reference assemblies. - @@ -2767,6 +2763,28 @@ because xbuild doesn't support framework reference assemblies. DependsOnTargets="$(InstallDependsOnTargets)"> + + + + + <_ProjectAndroidManifest>$(ProjectDir)$(AndroidManifest) + <_NdkRequired Condition="'$(BundleAssemblies)' == 'True' Or '$(AotAssemblies)' == 'True'">true + <_NdkRequired Condition="'$(_NdkRequired)' == ''">false + + + + + + + diff --git a/tests/BCL-Tests/Xamarin.Android.Bcl-Tests/Xamarin.Android.Bcl-Tests.csproj b/tests/BCL-Tests/Xamarin.Android.Bcl-Tests/Xamarin.Android.Bcl-Tests.csproj index d3812a0cd14..684d972338d 100644 --- a/tests/BCL-Tests/Xamarin.Android.Bcl-Tests/Xamarin.Android.Bcl-Tests.csproj +++ b/tests/BCL-Tests/Xamarin.Android.Bcl-Tests/Xamarin.Android.Bcl-Tests.csproj @@ -134,7 +134,7 @@ - + diff --git a/tests/BCL-Tests/Xamarin.Android.Bcl-Tests/Xamarin.Android.Bcl-Tests.targets b/tests/BCL-Tests/Xamarin.Android.Bcl-Tests/Xamarin.Android.Bcl-Tests.targets index 3bc40818051..1b2115baaaf 100644 --- a/tests/BCL-Tests/Xamarin.Android.Bcl-Tests/Xamarin.Android.Bcl-Tests.targets +++ b/tests/BCL-Tests/Xamarin.Android.Bcl-Tests/Xamarin.Android.Bcl-Tests.targets @@ -28,8 +28,14 @@ + + <_DebugSymbol + Include="..\..\..\bin\$(Configuration)\bcl-tests\%(MonoTestAssembly.Filename).pdb" + Condition="Exists('..\..\..\bin\$(Configuration)\bcl-tests\%(MonoTestAssembly.Filename).pdb')" + /> + From 02684adc0bfa548369f26596116b0009b7c7ff6f Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Wed, 21 Feb 2018 19:36:16 +0000 Subject: [PATCH 26/50] Bump Mono. --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index 72aea0056b8..b242e82ba48 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 72aea0056b84aa400d8367824f845724deeb8fb1 +Subproject commit b242e82ba4862f506e7ff93812aecd2288107db9 From d41ba7e904f244e4e0e3fedeb010ad6c2a4dd180 Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Wed, 21 Feb 2018 21:06:52 +0000 Subject: [PATCH 27/50] Make it build. --- .../Xamarin.Android.Build.Tasks.csproj | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj index 41f9f0c9af6..e239e46f05c 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj @@ -371,9 +371,6 @@ Linker\Linker\MarkingHelpers.cs - - Linker\Mono.Linker\MarkingHelpers.cs - Linker\Mono.Linker\Tracer.cs From 676104bafd821fca02713ae2ce4d32bea69834ab Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Tue, 27 Feb 2018 23:04:59 +0000 Subject: [PATCH 28/50] FIXME: ignore missing symbol files. --- .../Linker/MonoDroid.Tuner/Linker.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/Linker.cs b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/Linker.cs index 352cda31492..6b90605fc5d 100644 --- a/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/Linker.cs +++ b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/Linker.cs @@ -48,7 +48,7 @@ static LinkContext CreateLinkContext (LinkerOptions options, Pipeline pipeline, context.CoreAction = AssemblyAction.Link; context.UserAction = AssemblyAction.Link; context.LinkSymbols = true; - context.SymbolReaderProvider = new DefaultSymbolReaderProvider (true); + context.SymbolReaderProvider = new DefaultSymbolReaderProvider (false); context.SymbolWriterProvider = new DefaultSymbolWriterProvider (); context.OutputDirectory = options.OutputDirectory; return context; From 754f8c77b633ae886cb2a42cabeac256bb02c70b Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Thu, 1 Mar 2018 18:40:50 +0000 Subject: [PATCH 29/50] Revert "FIXME: ignore missing symbol files." This reverts commit 676104bafd821fca02713ae2ce4d32bea69834ab. --- .../Linker/MonoDroid.Tuner/Linker.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/Linker.cs b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/Linker.cs index 6b90605fc5d..352cda31492 100644 --- a/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/Linker.cs +++ b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/Linker.cs @@ -48,7 +48,7 @@ static LinkContext CreateLinkContext (LinkerOptions options, Pipeline pipeline, context.CoreAction = AssemblyAction.Link; context.UserAction = AssemblyAction.Link; context.LinkSymbols = true; - context.SymbolReaderProvider = new DefaultSymbolReaderProvider (false); + context.SymbolReaderProvider = new DefaultSymbolReaderProvider (true); context.SymbolWriterProvider = new DefaultSymbolWriterProvider (); context.OutputDirectory = options.OutputDirectory; return context; From 8ffe62499803f5c8332a15ba8e644a2937d64abd Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Thu, 1 Mar 2018 18:49:03 +0000 Subject: [PATCH 30/50] Bump Mono. --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index b242e82ba48..c0b76ff9aec 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit b242e82ba4862f506e7ff93812aecd2288107db9 +Subproject commit c0b76ff9aec96f018155aa54c69e84c5bae2c81b From 5fb2e06aee5853f4e7353d3052b35dc8ad05587e Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Thu, 1 Mar 2018 20:43:58 +0000 Subject: [PATCH 31/50] Make it build. --- .../Linker/MonoDroid.Tuner/Linker.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/Linker.cs b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/Linker.cs index 352cda31492..89b7b408171 100644 --- a/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/Linker.cs +++ b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/Linker.cs @@ -43,7 +43,7 @@ static LinkContext CreateLinkContext (LinkerOptions options, Pipeline pipeline, if (prepareDependenciesDump != null) prepareDependenciesDump.Invoke (context.Annotations, null); } - context.LogInternalExceptions = true; + context.LogMessages = true; context.Logger = logger; context.CoreAction = AssemblyAction.Link; context.UserAction = AssemblyAction.Link; From a54509772b5ca9b29dd46c03b316a6cc4d994d35 Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Mon, 5 Mar 2018 22:42:05 +0000 Subject: [PATCH 32/50] Bump Mono. --- build-tools/dependencies/dependencies.projitems | 2 +- external/mono | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build-tools/dependencies/dependencies.projitems b/build-tools/dependencies/dependencies.projitems index 5e5225a717e..e24d1b3288a 100644 --- a/build-tools/dependencies/dependencies.projitems +++ b/build-tools/dependencies/dependencies.projitems @@ -1,7 +1,7 @@ - <_DarwinMonoFramework>MonoFramework-MDK-5.12.0.28.macos10.xamarin.universal.pkg + <_DarwinMonoFramework>MonoFramework-MDK-5.12.0.74.macos10.xamarin.universal.pkg <_AptGetInstall>apt-get -f -u install diff --git a/external/mono b/external/mono index c0b76ff9aec..30aadcaa3a4 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit c0b76ff9aec96f018155aa54c69e84c5bae2c81b +Subproject commit 30aadcaa3a40b52ea9d9a32f84fd29354f87e633 From fc093971a421dc15e2e7cfc6aa2819941467da88 Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Mon, 5 Mar 2018 22:47:23 +0000 Subject: [PATCH 33/50] Update DarwinMinimumUrl. --- build-tools/dependencies/dependencies.projitems | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-tools/dependencies/dependencies.projitems b/build-tools/dependencies/dependencies.projitems index e24d1b3288a..a328665b98a 100644 --- a/build-tools/dependencies/dependencies.projitems +++ b/build-tools/dependencies/dependencies.projitems @@ -59,7 +59,7 @@ $(MonoRequiredMaximumVersion) $(MonoRequiredDarwinMinimumVersion) $(MSBuildThisFileDirectory)..\scripts\mono-version - https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2018-02/29/f0f76abc304dd768b8dbd18397329816006c682b/$(_DarwinMonoFramework) + https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2018-02/29/30aadcaa3a40b52ea9d9a32f84fd29354f87e633/$(_DarwinMonoFramework) installer -pkg "$(AndroidToolchainCacheDirectory)\$(_DarwinMonoFramework)" -target / From c7a0724bebfad0194c3fb28fa6d3017399837eb4 Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Tue, 6 Mar 2018 01:22:31 +0000 Subject: [PATCH 34/50] Fix package url. --- build-tools/dependencies/dependencies.projitems | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-tools/dependencies/dependencies.projitems b/build-tools/dependencies/dependencies.projitems index a328665b98a..9b194a5578c 100644 --- a/build-tools/dependencies/dependencies.projitems +++ b/build-tools/dependencies/dependencies.projitems @@ -59,7 +59,7 @@ $(MonoRequiredMaximumVersion) $(MonoRequiredDarwinMinimumVersion) $(MSBuildThisFileDirectory)..\scripts\mono-version - https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2018-02/29/30aadcaa3a40b52ea9d9a32f84fd29354f87e633/$(_DarwinMonoFramework) + https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2018-02/68/30aadcaa3a40b52ea9d9a32f84fd29354f87e633/$(_DarwinMonoFramework) installer -pkg "$(AndroidToolchainCacheDirectory)\$(_DarwinMonoFramework)" -target / From 1b0426046564c1372cd94f2d619d9154798c34e8 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Thu, 8 Mar 2018 17:29:46 -0500 Subject: [PATCH 35/50] Bump to mono:2018-02 --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index 30aadcaa3a4..91fe1eb5f58 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 30aadcaa3a40b52ea9d9a32f84fd29354f87e633 +Subproject commit 91fe1eb5f58b7ed26951cc996750a2a786ed7a1a From 5badf17dc2fbd2e42f23a0955b4fd31b222eac13 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Thu, 8 Mar 2018 22:23:16 -0500 Subject: [PATCH 36/50] Bump system mono to `mono:2018-02` --- build-tools/dependencies/dependencies.projitems | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build-tools/dependencies/dependencies.projitems b/build-tools/dependencies/dependencies.projitems index 9b194a5578c..f4b737a09fa 100644 --- a/build-tools/dependencies/dependencies.projitems +++ b/build-tools/dependencies/dependencies.projitems @@ -1,7 +1,7 @@ - <_DarwinMonoFramework>MonoFramework-MDK-5.12.0.74.macos10.xamarin.universal.pkg + <_DarwinMonoFramework>MonoFramework-MDK-5.12.0.90.macos10.xamarin.universal.pkg <_AptGetInstall>apt-get -f -u install @@ -59,7 +59,7 @@ $(MonoRequiredMaximumVersion) $(MonoRequiredDarwinMinimumVersion) $(MSBuildThisFileDirectory)..\scripts\mono-version - https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2018-02/68/30aadcaa3a40b52ea9d9a32f84fd29354f87e633/$(_DarwinMonoFramework) + https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2018-02/79/91fe1eb5f58b7ed26951cc996750a2a786ed7a1a/$(_DarwinMonoFramework) installer -pkg "$(AndroidToolchainCacheDirectory)\$(_DarwinMonoFramework)" -target / From 371664e8d94a2e1850eda32886055f511bb274ef Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Fri, 9 Mar 2018 18:58:56 -0500 Subject: [PATCH 37/50] Bump to mono:2018-02 --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index 91fe1eb5f58..279d7e230fd 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 91fe1eb5f58b7ed26951cc996750a2a786ed7a1a +Subproject commit 279d7e230fd9d04650aceb1acf450a299dd16470 From c923c7bfd60fa14c9be8bbe4f3b2901a70e011de Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Fri, 16 Mar 2018 18:12:20 -0400 Subject: [PATCH 38/50] Bump to mono:2018-02 --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index 279d7e230fd..e9c512092df 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 279d7e230fd9d04650aceb1acf450a299dd16470 +Subproject commit e9c512092dfc408aa2124266f5ecf085e0693eb4 From a8de9a6b77632ef354b0da69efd313531c4b6525 Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Tue, 20 Mar 2018 13:04:59 +0100 Subject: [PATCH 39/50] Bump to mono:2018-02 Commit list for mono/mono: * mono/mono@3577465fcd6 add LL suffix to constant in order to prevent overflowing on 32bit systems * mono/mono@7d9e106c032 1000ns = 1us and 1us = 10ticks * mono/mono@3931767dcab reduce compiler warnings * mono/mono@deb3474e7cc add regression test for github issue 7646 * mono/mono@27c7a4b01ed use utimes if available in order to set subsecond information on access and write time * mono/mono@da5b39d785f factor setfiletime * mono/mono@7f69ff87b57 use CONVERT_BASE in more places * mono/mono@e33bf27c9ad replace SECMULT with TICKS_PER_SECOND * mono/mono@79030a32843 remove unused mono_w32file_get_times () * mono/mono@e74d4a6e31f Merge pull request #7686 from mono/backport-gh-7584 * mono/mono@c2fe39f13ef Revert "Replace mono_msec_boottime() with CoreCLR implementation. Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=58413" * mono/mono@0d8de253cbb [System.Net] Replace use of obsolete `SupportsIPv6` property. Diff: https://github.com/mono/mono/compare/e9c512092dfc408aa2124266f5ecf085e0693eb4...3577465fcd667fa01b15ee673aa93b55bf7b9f38 --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index e9c512092df..3577465fcd6 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit e9c512092dfc408aa2124266f5ecf085e0693eb4 +Subproject commit 3577465fcd667fa01b15ee673aa93b55bf7b9f38 From 5f657aa979f409a1e30f2abcbd8622ad7b6e4eb9 Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Wed, 21 Mar 2018 10:49:43 +0100 Subject: [PATCH 40/50] Bump to mono:2018-02 Commit list for mono/mono: * mono/mono@c17d8c6dcdc remove WildcardConnect () on WatchOS * mono/mono@e29f146ab36 [2018-02] [sgen] Use current nursery size when computing allowance (#7648) * mono/mono@535bfc5d845 Add csc-dim as a prototype if default interface implementation * mono/mono@5b66de0bf08 [2018-02] [sdks] Fix concurrent building of MonoAotOffsetsDumper.exe + Simplify building of support library (#7688) * mono/mono@a6c7b9eca49 [msbuild] Bump msbuild to pick up fix for issue #7184 (#7666) Diff: https://github.com/mono/mono/compare/3577465fcd667fa01b15ee673aa93b55bf7b9f38...c17d8c6dcdc8089868e39316ad214edc7e42b3a3 --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index 3577465fcd6..c17d8c6dcdc 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 3577465fcd667fa01b15ee673aa93b55bf7b9f38 +Subproject commit c17d8c6dcdc8089868e39316ad214edc7e42b3a3 From 32f17a68d87a0a814d57e33ba3998802ef6e6da0 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Tue, 3 Apr 2018 18:35:17 -0400 Subject: [PATCH 41/50] Bump to mono/2017-12/95cc49a6 Commit list for mono/mono: * mono/mono@95cc49a65c0 [2018-02] [Facades] Add System.Memory facade to mobile profiles (#7967) * mono/mono@dea448aa838 Disable building btls/ and support/ on the bcl build, they are not needed. * mono/mono@21cef8b793a [runtime] Add a --disable-btl-lib configure option to disable the building of the btls lib, but compile the managed code with btls support. * mono/mono@0ba54d6bdd0 [ppc] use ucontext_t * mono/mono@c3e00ab9bc6 [runtime] Add regression test for nested famility visibility. * mono/mono@30b5b2b1880 [runtime] Fix class visibility check for protected nested classes. Fixes #7657. * mono/mono@29adf3012f7 Bump API snapshot submodule * mono/mono@d6fde73640b [corlib] Update linker descriptor with missing types * mono/mono@572c33ae18d [corlib] Enable machine.config dependant version of CryptoConfig for net_4_x profile only * mono/mono@dcdd956e1b3 [perfcounters] fix alignment issue on 32bit * mono/mono@811e3b4dcd2 [sdks] Fix LLVM build for XA (#7919) * mono/mono@25aba4e86ef [2018-02] [sdks] Fix LLVM build on Linux for XA + Fix MXE usage on non-Darwin platforms (#7912) * mono/mono@ae7f365c064 [sdks] Fix usage of MXE for XA (#7898) * mono/mono@cda8574a885 [jit] Add signature checking for CALLI. (#7880) * mono/mono@a6b0e1ccbed [2018-02] [sdks] Pass LLVM_SRC from XA to use `xamarin-android/external/llvm` + Pass IGNORE_PACKAGE_MXE from XA + Only checkout specific MXE and LLVM commit when cloning (#7895) * mono/mono@7ee378c9045 [sdks] Pass MXE_SRC from XA to use `xamarin-android/external/mxe` (#7890) * mono/mono@511ca9f5073 Whitelist illinkanalyzer in macOS package (#7862) * mono/mono@88b52663760 Merge pull request #7851 from monojenkins/backport-pr-7849-to-2018-02 * mono/mono@4aa9fd41b87 [msbuild] Bump to pick up updates (#7846) * mono/mono@4bf541a969f [System] Makes TLS providers linker friendly * mono/mono@b250b4a6571 [2018-02] [sdk] sync ios and android changes from master into `2018-02` (#7831) * mono/mono@6c324b91b22 [corlib] Restores ConcurrentDictionary serialization support. * mono/mono@77fc4cfa2e0 Remove suspicious mono_gchandle_free * mono/mono@3984508a04c [icall] remove DISABLE_PROCESS_HANDLING (#7827) * mono/mono@67a2468db9c support increment and decrement of nint/nuint (#7790) * mono/mono@da0e172ae59 improve error message and add another interp_in signature (#7789) * mono/mono@1c9d8aad07b [sdks] Fix the ios sdk build. (#7801) (#7824) * mono/mono@c6fc176f5c0 Fix Android build for toolchain (#7818) * mono/mono@c9bf7a38784 Disable the interpreter on ios device builds. (#7795) * mono/mono@d37075a9491 [System] Disable a test file to resolve compilation error * mono/mono@42fc0bd51fb Bump corefx to bring a fix for #7696 * mono/mono@2487301fafb Fix Android build for mxe (#7782) * mono/mono@0d6be4da5ec [sdks] Fix Android build on Linux (#7777) * mono/mono@ebbed2bb875 Revert "Swap Close/Dispose calls so that the receiver_thread_main loop will be properly interrupted (#7390)" (#7751) * mono/mono@e5bad88ebb1 Fix Android build (#7769) * mono/mono@238c21cf77d Fix a race condition that was exposed by #7358 (see #7668). * mono/mono@2fbd5a16a38 [runtime] Fix file handle leak with dedup+aot (#7721) * mono/mono@a13c12ac991 [2018-02] [loader] Don't load framework Facade assemblies that are older than expected. (#7708) * mono/mono@bdf405fae43 Merge pull request #7726 from mono/backport-new-boottime-2018-02 * mono/mono@ce612bb49ec Fix partially shared constrained calls in llvmonly mode. * mono/mono@0a3d40ac609 Avoid aot-ing the bcl libs twice in make fullaotcheck/llvmonlycheck. * mono/mono@07d5a031d46 [runtime] Don't use clock_gettime on WatchOS and tvOS. * mono/mono@ff546b9d8be [runtime] Don't use clock_gettime in MacOS. * mono/mono@9922d1af205 [runtime] Fix mono_msec_boottime () so it compiles on older ios versions, clock_gettime () is only available from ios 10. (#7671) * mono/mono@875240538e1 [mono-time] Replace mono_msec_boottime() with CoreCLR implementation. Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=58413 Diff: https://github.com/mono/mono/compare/c17d8c6dcdc8089868e39316ad214edc7e42b3a3...95cc49a65c0865517e75f545a87d813391ddfe1e --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index c17d8c6dcdc..95cc49a65c0 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit c17d8c6dcdc8089868e39316ad214edc7e42b3a3 +Subproject commit 95cc49a65c0865517e75f545a87d813391ddfe1e From 58e84078830ce05f62a7e5f596243e7a42a7c10f Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Thu, 5 Apr 2018 16:12:56 -0400 Subject: [PATCH 42/50] Bump to mono/2017-12/2c564f83 Commit list for mono/mono: * mono/mono@2c564f83f2f [System]Fix memory leak in the web stack related to `Task.Delay` (partial fix of #7356). * mono/mono@3c52f0a4a9a [SDKS] Fix Android SDK build on Linux (#8023) * mono/mono@c5f99aa4dc3 [interp] do not bake object reference into code stream * mono/mono@1e35db0ae2d [interp] fix i4<>i8 conversion for builtin types, it was inverted (#7986) * mono/mono@88f5058a332 [sdks] Fix MXE_PREFIX for XA (#8010) * mono/mono@0d5eb5c9bb0 [sdb] Add reference counting for single step requests, they can be accessed concurrently by the single step processing code and the event request clearing code. Fixes #7137. (#7972) * mono/mono@723f194cdcf [2018-02] [sdks] Add provisioning for Android SDK and NDK (#7979) * mono/mono@a5e4482376a [System] Disable SocketTest.AcceptBlockingStatus (#7977) Diff: https://github.com/mono/mono/compare/95cc49a65c0865517e75f545a87d813391ddfe1e...2c564f83f2fd12b4bc57c277d2764161f4866cb5 --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index 95cc49a65c0..2c564f83f2f 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 95cc49a65c0865517e75f545a87d813391ddfe1e +Subproject commit 2c564f83f2fd12b4bc57c277d2764161f4866cb5 From e7201523795691777cda44e790d1adaf29558f02 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Wed, 11 Apr 2018 15:36:55 -0400 Subject: [PATCH 43/50] Bump to mono/2017-12/02390a74 Commit list for mono/mono: * mono/mono@02390a7414e [sdks] Fix build (#8183) * mono/mono@cea42949126 [corlib] Make more crypto oids work on mobile profiles when not linked out * mono/mono@9e7efad7be2 [mcs] Fixes parameter check for interface types used with default parameters * mono/mono@d0562a9e6ff [sdks] Add support for building llvm unless the USE_PREBUILT_LLVM Make.config var is set. (#8017) (#8150) * mono/mono@887d3ad27e0 [System] Don't use http://www.mono-project.com for test (#8147) * mono/mono@363790b1ec5 [corlib] Implements CryptoConfig::AddAlgorithm on all profiles * mono/mono@bf838da659a [w32file] Fix memory leak (#8114) * mono/mono@c530c5182f2 [2018-02] Implement C#7 binary literals (#8119) * mono/mono@e310966925f [2018-02] [Facades] Add System.Drawing.Common on mobile only (#8128) * mono/mono@5c2ab44dec3 [mcs] Adds private protected modifier to the parser only * mono/mono@0fac09cf893 [sdks] Fix arguments passed to llvm on Linux (#8109) * mono/mono@02d69477dd7 [mcs] Fixes codegen when probing reference type expression is known to pass and pattern variable has to be created (#8085) * mono/mono@54f51bf7015 [interp] use same domain as transform phase to register debug data for a method * mono/mono@0ca09346e39 [SDKS] fix Linux (and possibly other OSes) build for Android (#8044) * mono/mono@f5989de3b47 [mcs] Implements C# 7.2 stackalloc span conversion in conditional expression * mono/mono@8ad86236463 [interp] workaround undefined behaviour in r8 to u1 cast * mono/mono@19cc4c427ab [runtime] Fix --disable-btls. * mono/mono@e88bfbcbce0 [mcs] Implements C# 7.2 conditional ref expression * mono/mono@7048fb45ab5 [sdks] Use wget in place of curl, it's installed by default on Linux (#8058) Diff: https://github.com/mono/mono/compare/2c564f83f2fd12b4bc57c277d2764161f4866cb5...02390a7414e953699634979a6a04e4998294916c --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index 2c564f83f2f..02390a7414e 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 2c564f83f2fd12b4bc57c277d2764161f4866cb5 +Subproject commit 02390a7414e953699634979a6a04e4998294916c From f0119983200d85322c1614b03ed352b543a99fc4 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Wed, 11 Apr 2018 18:17:57 -0400 Subject: [PATCH 44/50] Fix ndk strip command path --- src/mono-runtimes/mono-runtimes.projitems | 10 +++++----- src/mono-runtimes/mono-runtimes.props | 12 ------------ 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/src/mono-runtimes/mono-runtimes.projitems b/src/mono-runtimes/mono-runtimes.projitems index c9fa840a543..dd62295a7dc 100644 --- a/src/mono-runtimes/mono-runtimes.projitems +++ b/src/mono-runtimes/mono-runtimes.projitems @@ -15,7 +15,7 @@ <_MonoRuntime Include="armeabi" Condition=" '$(_ArmeabiRuntimeConfigure)' == 'true' "> - $(_ArmStrip) + $(AndroidToolchainDirectory)\toolchains\armeabi-clang\bin\arm-linux-androideabi-strip libmonosgen-2.0 so libmono-profiler-log @@ -29,7 +29,7 @@ <_MonoRuntime Include="armeabi-v7a" Condition="$(AndroidSupportedTargetJitAbisForConditionalChecks.Contains (':armeabi-v7a:'))"> - $(_ArmStrip) + $(AndroidToolchainDirectory)\toolchains\armeabi-v7a-clang\bin\arm-linux-androideabi-strip libmonosgen-2.0 so libmono-profiler-log @@ -46,7 +46,7 @@ <_MonoRuntime Include="arm64-v8a" Condition=" '$(_Arm64RuntimeConfigure)' == 'true' "> - $(_Arm64Strip) + $(AndroidToolchainDirectory)\toolchains\arm64-v8a-linux-android-clang\bin\aarch64-linux-android-strip libmonosgen-2.0 so libmono-profiler-log @@ -63,7 +63,7 @@ <_MonoRuntime Include="x86" Condition=" '$(_X86RuntimeConfigure)' == 'true' "> - $(_X86Strip) + $(AndroidToolchainDirectory)\toolchains\x86-clang\bin\i686-linux-android-strip libmonosgen-2.0 so libmono-btls-shared @@ -80,7 +80,7 @@ <_MonoRuntime Include="x86_64" Condition=" '$(_X8664RuntimeConfigure)' == 'true' "> - $(_X86_64Strip) + $(AndroidToolchainDirectory)\toolchains\x86_64-clang\bin\x86_64-linux-android-strip libmonosgen-2.0 so libmono-profiler-log diff --git a/src/mono-runtimes/mono-runtimes.props b/src/mono-runtimes/mono-runtimes.props index 4b8ac20fc97..a0a496b38cb 100644 --- a/src/mono-runtimes/mono-runtimes.props +++ b/src/mono-runtimes/mono-runtimes.props @@ -94,18 +94,6 @@ - - <_ArmStrip>$(AndroidToolchainDirectory)\toolchains\arm-linux-androideabi-clang\bin\arm-linux-androideabi-strip - - - <_Arm64Strip>$(AndroidToolchainDirectory)\toolchains\aarch64-linux-android-clang\bin\aarch64-linux-android-strip - - - <_X86Strip>$(AndroidToolchainDirectory)\toolchains\i686-linux-android-clang\bin\i686-linux-android-strip - - - <_X86_64Strip>$(AndroidToolchainDirectory)\toolchains\x86_64-linux-android-clang\bin\x86_64-linux-android-strip - <_HostWin64CFlags>$(_HostWinCFlags) From 8857dc86ff3876be449bfb1e540f9ca73818a6d1 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Wed, 11 Apr 2018 18:19:44 -0400 Subject: [PATCH 45/50] Bump to mono/2018-02/dbf27d49 Commit list for mono/mono: * mono/mono@dbf27d49ad9 [sdks] Fix typo (#8187) Diff: https://github.com/mono/mono/compare/02390a7414e953699634979a6a04e4998294916c...dbf27d49ad965a5bbb40912a9e3772e5bf103183 --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index 02390a7414e..dbf27d49ad9 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 02390a7414e953699634979a6a04e4998294916c +Subproject commit dbf27d49ad965a5bbb40912a9e3772e5bf103183 From 4637ab358bbc4350d4fe9b871f33d828f1df6121 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Wed, 11 Apr 2018 19:18:03 -0400 Subject: [PATCH 46/50] Fix ndk strip command path (2nd attempt) --- src/mono-runtimes/mono-runtimes.projitems | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono-runtimes/mono-runtimes.projitems b/src/mono-runtimes/mono-runtimes.projitems index dd62295a7dc..e25b1a96fd1 100644 --- a/src/mono-runtimes/mono-runtimes.projitems +++ b/src/mono-runtimes/mono-runtimes.projitems @@ -46,7 +46,7 @@ <_MonoRuntime Include="arm64-v8a" Condition=" '$(_Arm64RuntimeConfigure)' == 'true' "> - $(AndroidToolchainDirectory)\toolchains\arm64-v8a-linux-android-clang\bin\aarch64-linux-android-strip + $(AndroidToolchainDirectory)\toolchains\arm64-v8a-clang\bin\aarch64-linux-android-strip libmonosgen-2.0 so libmono-profiler-log From 207a75fa7e33e200fe5d395e08ca82da9b4ba9f0 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Fri, 13 Apr 2018 11:17:57 -0400 Subject: [PATCH 47/50] Bump to mono/2018-02/763e7f9d Commit list for mono/mono: * mono/mono@763e7f9d783 [system.net] disable some tests to unblock XI integration (#8205) * mono/mono@35cb6bda95d [System.Net.Http] Use '*' as the host instead of '+' in the tests. Fixes xamarin/maccore#673. * mono/mono@61da4c7a5f1 [eglib] GMarkup: allow all ASCII NameStartChar and NameChar except ':' * mono/mono@2710e67296e [sdks] Add ANDROID_BUILD_TOOLS_DIR to differentiate it from ANDROID_BUILD_TOOLS_VERSION (#8192) Diff: https://github.com/mono/mono/compare/dbf27d49ad965a5bbb40912a9e3772e5bf103183...763e7f9d783204ca284306bdd991563fdf3d5f1f --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index dbf27d49ad9..763e7f9d783 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit dbf27d49ad965a5bbb40912a9e3772e5bf103183 +Subproject commit 763e7f9d783204ca284306bdd991563fdf3d5f1f From 4dc07346b2bdc74f888d1852529fb33de14c6861 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Wed, 18 Apr 2018 15:04:30 -0400 Subject: [PATCH 48/50] Bump to mono/2018-02/64ec2dd3 Commit list for mono/mono: * mono/mono@64ec2dd3eb1 [corlib] SynchronizationContext does not work on non-root AppDomain on Android (#8296) * mono/mono@9bbc930d620 [w32file-unix] fix mistake in 8430155946c31f0f3f5f04017eebd79ac15e566d (#8299) * mono/mono@891c01eb6e3 [2018-02] [runtime] Add public API to set the pending exception. (#8280) * mono/mono@e03516d11f7 [mcs] Implements C# 7 digits separators * mono/mono@4a00c501b21 [2018-02] Harden JIT job control against cctors deadlocking. (#8235) * mono/mono@34b31f05f50 [2018-02] Fix timestamp for file copy (#8247) * mono/mono@8e08947e1cd [sdks] Fix typo + Fix verbosity of unzip-android-archive.sh (#8243) * mono/mono@d96186b5e8f [w32handle] Lower minimum memory usage (2nd attempt) (#8154) Diff: https://github.com/mono/mono/compare/763e7f9d783204ca284306bdd991563fdf3d5f1f...64ec2dd3eb1309b84819b34c4279d946acacd082 --- build-tools/dependencies/dependencies.projitems | 4 ++-- external/mono | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build-tools/dependencies/dependencies.projitems b/build-tools/dependencies/dependencies.projitems index f4b737a09fa..ab1ed36ad08 100644 --- a/build-tools/dependencies/dependencies.projitems +++ b/build-tools/dependencies/dependencies.projitems @@ -1,7 +1,7 @@ - <_DarwinMonoFramework>MonoFramework-MDK-5.12.0.90.macos10.xamarin.universal.pkg + <_DarwinMonoFramework>MonoFramework-MDK-5.12.0.210.macos10.xamarin.universal.pkg <_AptGetInstall>apt-get -f -u install @@ -59,7 +59,7 @@ $(MonoRequiredMaximumVersion) $(MonoRequiredDarwinMinimumVersion) $(MSBuildThisFileDirectory)..\scripts\mono-version - https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2018-02/79/91fe1eb5f58b7ed26951cc996750a2a786ed7a1a/$(_DarwinMonoFramework) + https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2018-02/177/9bbc930d620487446f537e729f018eb965523fcd/$(_DarwinMonoFramework) installer -pkg "$(AndroidToolchainCacheDirectory)\$(_DarwinMonoFramework)" -target / diff --git a/external/mono b/external/mono index 763e7f9d783..64ec2dd3eb1 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 763e7f9d783204ca284306bdd991563fdf3d5f1f +Subproject commit 64ec2dd3eb1309b84819b34c4279d946acacd082 From b8e55afbbce71697cfd8c4d30bf5d3ccd3de0830 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Wed, 18 Apr 2018 19:21:29 -0400 Subject: [PATCH 49/50] Bump to mono/2018-02/6c5b8bcc Commit list for mono/mono: * mono/mono@6c5b8bcc39c [sdks] Fix mktemp parameters (#8324) * mono/mono@b1dda64bda8 [corlib] Fix TimeZoneInfo.Local when /usr/share/zoneinfo is a symlink (#8304) Diff: https://github.com/mono/mono/compare/64ec2dd3eb1309b84819b34c4279d946acacd082...6c5b8bcc39c1ff28230ae15bf864890dcce1cdd3 --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index 64ec2dd3eb1..6c5b8bcc39c 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 64ec2dd3eb1309b84819b34c4279d946acacd082 +Subproject commit 6c5b8bcc39c1ff28230ae15bf864890dcce1cdd3 From bbe0a2d34673672562306481e561fb8c1f087e98 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Thu, 19 Apr 2018 15:40:41 -0400 Subject: [PATCH 50/50] Bump to mono/2018-02/638a7ed3 Commit list for mono/mono: * mono/mono@638a7ed3b0e [corlib] Disable failing test on XA (#8352) Diff: https://github.com/mono/mono/compare/6c5b8bcc39c1ff28230ae15bf864890dcce1cdd3...638a7ed3b0efa8d526859d89f0eba842f575ce52 --- external/mono | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/mono b/external/mono index 6c5b8bcc39c..638a7ed3b0e 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 6c5b8bcc39c1ff28230ae15bf864890dcce1cdd3 +Subproject commit 638a7ed3b0efa8d526859d89f0eba842f575ce52