-
Notifications
You must be signed in to change notification settings - Fork 528
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[mono-2018-10] [build] Download correct mono archive URL #2366
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Context: https://github.com/mono/mono/blob/8e0cbf1044fb86f40c41f4317ef9154f82a94bb4/scripts/ci/pipeline/sdks-archive.groovy#L84 Context: https://jenkins.mono-project.com/view/Per-commit%20packages/job/archive-mono/ The mono archives have a different filename format than that used in commit f970cd5. As per [`sdks-archive.groovy`][0], the filename to download *should* be: ${product}-${configuration}-${platform}-${commitHash}.zip Update `$(_MonoArchiveName)` accordingly, and fix the output paths so that the mono archive can actually be used. (As noted in f970cd5, *actual* support for building with the mono archive hadn't been tested, as one didn't exist for the mono xamarin-android uses.) [0]: https://github.com/mono/mono/blob/8e0cbf1044fb86f40c41f4317ef9154f82a94bb4/scripts/ci/pipeline/sdks-archive.groovy
luhenry
added
the
full-mono-integration-build
For PRs; run a full build (~6-10h for mono bumps), not the faster PR subset (~2h for mono bumps)
label
Oct 31, 2018
luhenry
changed the title
[build] Download correct mono archive URL
[mono-2018-10] [build] Download correct mono archive URL
Oct 31, 2018
grendello
pushed a commit
that referenced
this pull request
Mar 8, 2019
* Bump to mono:2018-08 * Bump to mono:2018-10 * apply 2018-06 changes * bump mono * revert some submodules * Update dependencies.projitems * bump mono * Update dependencies.projitems * fix xunit path * bump mono * undo xamarin-android-api-compatibility * Bump to mono/2018-08/04a6e829 Commit list for mono/mono: * mono/mono@04a6e8294e3 [2018-08] Bump xunit (#11085) * mono/mono@f001e691cac [2018-08] Bump msbuild (#11087) * mono/mono@7001d39bb2e Always use InvariantCulture calendars in X509Certificate on Mobile Diff: mono/mono@e257971...04a6e82 * Bump to mono/2018-08/7805ccc4 Commit list for mono/mono: * mono/mono@7805ccc43df [sdks] Fix llvm-llvm32 build (#11117) Diff: mono/mono@04a6e82...7805ccc * Bump to mono/2018-08/657f915e Commit list for mono/mono: * mono/mono@657f915eb62 [2018-08] [sdks] Create archive targets for pre-building on CI (#10932) * mono/mono@bd1f64acc3c [sdks] Add cmake toolchain file for LLVM MXE builds (#11055) Diff: mono/mono@7805ccc...657f915 * Bump to mono/2018-08/2712292c Commit list for mono/mono: * mono/mono@2712292c567 [sdks] Add Groovy script to build the SDKs archives for the products (#11192) * mono/mono@839f49d3b2a [sdks] futimens and futimes symbols are missing on anything earlier than 10.13 (#11176) Diff: mono/mono@657f915...2712292 * Bump to mono/2018-10/8890b0c6 Commit list for mono/mono: * mono/mono@8890b0c6c4d Take fast path only for delegate types not Delegate/MulticastDelegate. (#11195) * mono/mono@dcaef0b2ca0 Bump to llvm/release_60/117a508c (#11120) * mono/mono@9ff6d8f918d [interp] Implement interpreter entry trampolines on amd64 (#10978) (#11163) * mono/mono@e708752f140 [sdks] Add Groovy script to build the SDKs archives for the products (#11191) * mono/mono@2a052ba0c94 [sdks] futimens and futimes symbols are missing on anything earlier than 10.13 (#11177) * mono/mono@76be3b3bc8e Initial Mono.Native Support. (#10941) * mono/mono@7e7efe488f2 [2018-10] [sdks] Build tests for BCL targets (#11140) * mono/mono@72a81cc6d26 Use passwordless import in the `X509Certificate(byte[])` constructor. * mono/mono@f00fa49bb9a [sdks] Add cmake toolchain file for LLVM MXE builds (#11054) * mono/mono@fc9fc38926e [2018-08] Bump msbuild (#11097) * mono/mono@d33c2133545 Always use InvariantCulture calendars in X509Certificate on Mobile * mono/mono@8c7aca33164 [2018-10] Bump xunit (#11084) * mono/mono@923afca8896 [2018-10] Bump cecil (#11022) * mono/mono@3dd1602a1a2 Bump msbuild to track xplat-master * mono/mono@edc6fc4e826 [2018-10] [interp] fixes for native type (#10999) * mono/mono@98b85ceaec4 Bump corert * mono/mono@7d4ca00db49 Bump corert * mono/mono@810ced6d0ba Extract case for verifying several object array parameters to separate test method. * mono/mono@98c33e716d4 Add unit tests to verify custom attribute ctor with object array as parameter * mono/mono@a5016f78986 [ci] Always pass sha1 from Mac to Windows packaging build * mono/mono@6deb114ce54 [corlib] Simplify confusing "SSPI" error message and align with corefx (#10976) * mono/mono@ec0ae343f0d [sdks/ios] Build libMonoPosixHelper for device architectures, so that zlib-helper.o is created. (#10959) * mono/mono@921642ea72d Put xunit tests in mcs/class/lib/PROFILE/tests too * mono/mono@5e6ea6c806e Merge pull request #10909 from monojenkins/backport-pr-10899-to-2018-10 * mono/mono@aa3762656b1 [sdks] Ensure LLVM is cloned before trying to download (#10933) * mono/mono@7f3b574ca75 Bump linker * mono/mono@31b7ce52ad6 [runtime] Fix undefined pthread_main_np (#10930) * mono/mono@be44769e177 [Reflection] Fix issue with finding types in module using an asterisk as filter criteria * mono/mono@1bcf14ab41e [w32handle] Add coop state transitions in mono_w32handle_lock_handles (#10911) * mono/mono@f362bfe257f [runtime] Disable stack guard for main thread on osx Diff: mono/mono@a1c34de...8890b0c * bump mono * Bump to mono/2018-08/010e741b Commit list for mono/mono: * mono/mono@010e741bace [2018-08] Crash Reporter V2 (#11161) * mono/mono@ec1a7362660 [corlib] Ensure that Console Streams are thread-safe Diff: mono/mono@a9b1acb...010e741 * Bump to mono/2018-08/bc9d709e Commit list for mono/mono: * mono/mono@bc9d709e704 [sdks] Package what's missing for XA (#11256) * mono/mono@31a6b877f6c [pipeline] Ensure only 1 build per-product is executed per-node (#11249) * mono/mono@4b343e98f37 [interp] Implement interpreter entry trampolines on amd64 (#10978) (#11164) * mono/mono@2bc1ed09a32 [aot] Ensure shared got entries are initialized before loading methods (#11226) Diff: mono/mono@010e741...bc9d709 * Bump to system mono/2018-08/bc9d709e * Bump to mono/2018-10/f743d425 Commit list for mono/mono: * mono/mono@f743d4250cd [2018-10] Use Mono.Android as a reference for netstandard facade (#10974) * mono/mono@dc9771601a4 [sdks] Package what's missing for XA (#11254) * mono/mono@3986341b65d [tests] Embed Mono.Data.Sqlite test resource (#11245) * mono/mono@0a919874d10 [pipeline] Ensure only 1 build per-product is executed per-node (#11248) * mono/mono@4577597ce1a [aot] Ensure shared got entries are initialized before loading methods (#11224) * mono/mono@59b1d815258 [2018-10] Crash Reporter V2 (#11160) * mono/mono@980aef41b9a [ci] Move OSX .pkg build to a separate bot pool * mono/mono@429bb0bae03 [corlib] Ensure that Console Streams are thread-safe (#11230) * mono/mono@c0212dac5f2 Remove overflow exception catch from #MOBILE * mono/mono@4f700983dfe [Reflection] Handle overflow exception on constructor invocation * mono/mono@790f4122755 [pkg] Add preinstall which removes existing Mono of the same version (#11207) * mono/mono@3b5cacc15cd [2018-10] [System]: Reenable native Apple Certificate support on WatchOS. (#11198) * mono/mono@b261706d884 [sdks] Fix Archive Jenkins job (#11218) Diff: mono/mono@8890b0c...f743d42 * Fix build * Remove _Autogen target, it's part of _Build already * bump mono * Removes wrong main entry point name for mono-api-info * Bump to mono/2018-08/0522076f Commit list for mono/mono: * mono/mono@0522076f0ba [interp] throw overflow exception when {float,double}.NaN is converted to an int type (#11411) * mono/mono@6034c589df8 [interp] enable more BCL tests (#11399) * mono/mono@aebff6ce012 [SDKS, LLVM] Disable detection and use of libxml2 (#11340) * mono/mono@818a27a386e [2018-08] [aot] add unbox_arbitrary_trampoline for fullaot/interp mixed mode (#11363) * mono/mono@b5e8de91821 [2018-08][corlib] Adds back accidentaly removed legacy COM API to Binder (#11368) * mono/mono@205b8129d59 [tests] lower recursion depth of PerformNoPinAction (#11323) * mono/mono@c2c764dfc6a [2018-08] Replace mono_object_get_class with mono_object_class to avoid gc transitions. (#11338) * mono/mono@b7784994542 [wasm] Add missing include (#11337) Diff: mono/mono@b7ad1c6...0522076 * Bump mono to tip of 2018-10 * [build] Download correct mono archive URL (#2366) Context: https://github.com/mono/mono/blob/8e0cbf1044fb86f40c41f4317ef9154f82a94bb4/scripts/ci/pipeline/sdks-archive.groovy#L84 Context: https://jenkins.mono-project.com/view/Per-commit%20packages/job/archive-mono/ The mono archives have a different filename format than that used in commit f970cd5. As per [`sdks-archive.groovy`][0], the filename to download *should* be: ${product}-${configuration}-${platform}-${commitHash}.zip Update `$(_MonoArchiveName)` accordingly, and fix the output paths so that the mono archive can actually be used. (As noted in f970cd5, *actual* support for building with the mono archive hadn't been tested, as one didn't exist for the mono xamarin-android uses.) [0]: https://github.com/mono/mono/blob/8e0cbf1044fb86f40c41f4317ef9154f82a94bb4/scripts/ci/pipeline/sdks-archive.groovy * Bump to mono/2018-10/d02b6c05 Commit list for mono/mono: * mono/mono@d02b6c0583f [crash] Fix async setting for crash reporter Diff: mono/mono@3d170b9...d02b6c0 * Bump to mono/2018-10/24e7d7d5 Commit list for mono/mono: * mono/mono@24e7d7d5e8d [csproj] Update project files * mono/mono@a65b7d8b44d [csproj] Update project files * mono/mono@6bbc707eb3f "Mono.Native - Halloween Edition" * mono/mono@114f88aaf12 [corlib] Remove incorrectly converted silverlight check * mono/mono@dc57395fd6b [2018-10] Add .NET 4.7.2 reference assemblies (#11391) (#11503) * mono/mono@86ba8ff9640 [System]`lock` protect `SystemCertificateProvider.EnsureInitialized()`. Diff: mono/mono@d02b6c0...24e7d7d * Bump to mono/2018-10/3c2b25ce Commit list for mono/mono: * mono/mono@3c2b25ce23b [System]`lock` protect `SystemCertificateProvider.EnsureInitialized()`. * mono/mono@5fedefe43eb [tests] reduce recursion depth * mono/mono@53a21a0e844 [crash] Fix async setting for crash reporter * mono/mono@04bdf8852b3 [2018-08] [crash] Fix merp invocation (#11468) * mono/mono@8df60a29bfe [delegates] do not use CEE_CALLVIRT for non-virtual methods (#11451) * mono/mono@d90fbe3a0ab [llvm] Fix passing vtypes received by value as arguments, they need to be copied. Fixes mono/mono#11378. (#11429) * mono/mono@ea740d2bc8d Disable hybrid suspend default for 2018-08 Diff: mono/mono@0522076...3c2b25c * Revert "[build] Download correct mono archive URL (#2366)" This reverts commit c2f6f46. * Bump to mono/2018-10/e45b97c6 Commit list for mono/mono: * mono/mono@e45b97c68e3 [ci] Switch to new syntax of Azure Storage plugin Diff: mono/mono@24e7d7d...e45b97c * Bump to mono/2018-10/5e1b1153 Commit list for mono/mono: * mono/mono@5e1b11535d1 [llvm] bump for armhf callingconv fix (#11608) * mono/mono@f28a0c04db8 [sdks] Exit with non-zero exit code if the simulator test fails on ios. (#11547) * mono/mono@ae5ff1b4bcd [android sdk] Package resource assemblies into app bundle (#11583) * mono/mono@0e6a3e0c856 [ios sdk] Package resource assemblies into app bundle (#11575) * mono/mono@2d04a8f274e Bump API snapshot submodule * mono/mono@2f9dcaf1fc4 [2018-10] Bump corefx * mono/mono@39ee7a08f92 [ios] remove DISABLE_POLICY_EVIDENCE (#11582) * mono/mono@36cac594854 Bump roslyn-binaries submodule to pull in System.Xml.dll file name fix in vbc.rsp (#11573) * mono/mono@f5e27e160c0 Added missing cts.Cancel() in HttpClient Dispose() method (#11539) * mono/mono@6d2ea1b0044 [interp] transform delegate invoke in method body too (#11550) * mono/mono@4023a6233e2 [2018-10] Fix ref return for structs in runtime invoke wrapper. (#11555) * mono/mono@78662419dfd [ci] Fix Windows .msi build * mono/mono@35d1ff89a0e Fix the issue when ParameterInfo.RawDefaultValue returns Missing.Value for non-null default values of DateTime?` and decimal? parameters (#11537) * mono/mono@267470152af [bcl] avoid false pinning in GCTest (#11540) * mono/mono@aab7377d4fd [interp] accept typed-by-ref as return type from a JIT call (#11535) * mono/mono@bdf42f000e6 Make the test compile on mobile. (#11544) Diff: mono/mono@e45b97c...5e1b115 * Bump to mono/2018-08/32d4b6f2 Commit list for mono/mono: * mono/mono@32d4b6f22a1 [llvm] bump for armhf callingconv fix (#11609) * mono/mono@925e0c0d0cf [ios] remove DISABLE_POLICY_EVIDENCE (#11581) * mono/mono@65cd16c227e Bump roslyn-binaries submodule to pull in System.Xml.dll file name fix in vbc.rsp (#11573) * mono/mono@b5891e25acf [ci] Fix Windows .msi build * mono/mono@d4d1d1ec246 [bcl] avoid false pinning in GCTest (#11536) * mono/mono@3837f0c276b [interp] accept typed-by-ref as return type from a JIT call (#11533) * mono/mono@2e5c0d8f1ee [interp] transform delegate invoke in method body too (#11551) * mono/mono@60c21beaeb8 [ci] Switch to new syntax of Azure Storage plugin Diff: mono/mono@3c2b25c...32d4b6f * [build] Download correct mono archive URL (#2389) Context: https://github.com/mono/mono/blob/8e0cbf1044fb86f40c41f4317ef9154f82a94bb4/scripts/ci/pipeline/sdks-archive.groovy#L84 Context: https://jenkins.mono-project.com/view/Per-commit%20packages/job/archive-mono/ The mono archives have a different filename format than that used in commit f970cd5. As per [`sdks-archive.groovy`][0], the filename to download *should* be: ${product}-${configuration}-${platform}-${commitHash}.zip Update `$(_MonoArchiveName)` accordingly, and fix the output paths so that the mono archive can actually be used. (As noted in f970cd5, *actual* support for building with the mono archive hadn't been tested, as one didn't exist for the mono xamarin-android uses.) [0]: https://github.com/mono/mono/blob/8e0cbf1044fb86f40c41f4317ef9154f82a94bb4/scripts/ci/pipeline/sdks-archive.groovy * Remove debug spew * Bump to mono/2018-10/64c566d8 Commit list for mono/mono: * mono/mono@64c566d8da2 [sdks] Compile support/{zlib-helper,nl}.c so XI/XM/XA does not have to cherry-pick them (#11676) * mono/mono@d51ed697a0e [ci] Clean acceptance-tests/external before build * mono/mono@4d294287415 [2018-10][System.Data]: GSS is not available on tvOS and watchOS. (#11677) * mono/mono@f285f82c8d2 Bumping reference assemblies generated with latest GenAPI (#11633) Diff: mono/mono@5e1b115...64c566d * [monodroid] Remove dependency on `$(MonoSourceFullPath)/support/{zlib-helper,nl}.c` (#2431) * Revert unintended changes in previous merge ``` git diff 42656af $THIS_COMMIT diff --git a/.gitmodules b/.gitmodules index b305840f..7f835877 100644 --- a/.gitmodules +++ b/.gitmodules @@ -25,7 +25,7 @@ [submodule "external/mono"] path = external/mono url = https://github.com/mono/mono.git - branch = 2018-08 + branch = 2018-10 [submodule "external/mxe"] path = external/mxe url = https://github.com/xamarin/mxe.git diff --git a/Configuration.props b/Configuration.props index a1785e4d..803438ab 100644 --- a/Configuration.props +++ b/Configuration.props @@ -73,8 +73,8 @@ <JavaInteropSourceDirectory Condition=" '$(JavaInteropSourceDirectory)' == '' ">$(MSBuildThisFileDirectory)external\Java.Interop</JavaInteropSourceDirectory> <LlvmSourceDirectory Condition=" '$(LlvmSourceDirectory)' == '' ">$(MSBuildThisFileDirectory)external\llvm</LlvmSourceDirectory> <MonoSourceDirectory>$(MSBuildThisFileDirectory)external\mono</MonoSourceDirectory> - <MonoRequiredMinimumVersion Condition=" '$(MonoRequiredMinimumVersion)' == '' ">5.18.0</MonoRequiredMinimumVersion> - <MonoRequiredMaximumVersion Condition=" '$(MonoRequiredMaximumVersion)' == '' ">5.19.0</MonoRequiredMaximumVersion> + <MonoRequiredMinimumVersion Condition=" '$(MonoRequiredMinimumVersion)' == '' ">5.20.0</MonoRequiredMinimumVersion> + <MonoRequiredMaximumVersion Condition=" '$(MonoRequiredMaximumVersion)' == '' ">5.21.0</MonoRequiredMaximumVersion> <IgnoreMaxMonoVersion Condition=" '$(IgnoreMaxMonoVersion)' == '' ">True</IgnoreMaxMonoVersion> <MonoRequiredDarwinMinimumVersion>$(MonoRequiredMinimumVersion).0</MonoRequiredDarwinMinimumVersion> <LinkerSourceDirectory>$(MSBuildThisFileDirectory)external\mono\external\linker</LinkerSourceDirectory> diff --git a/build-tools/dependencies/dependencies.projitems b/build-tools/dependencies/dependencies.projitems index c9a26b9e..37612ea3 100644 --- a/build-tools/dependencies/dependencies.projitems +++ b/build-tools/dependencies/dependencies.projitems @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> - <_DarwinMonoFramework>MonoFramework-MDK-5.18.0.162.macos10.xamarin.universal.pkg</_DarwinMonoFramework> + <_DarwinMonoFramework>MonoFramework-MDK-5.20.0.81.macos10.xamarin.universal.pkg</_DarwinMonoFramework> <_AptGetInstall>apt-get -f -u install</_AptGetInstall> </PropertyGroup> <ItemGroup> @@ -59,7 +59,7 @@ <MaximumVersion Condition=" '$(IgnoreMaxMonoVersion)' == '' Or '$(IgnoreMaxMonoVersion)' == 'False' " >$(MonoRequiredMaximumVersion)</MaximumVersion> <DarwinMinimumVersion>$(MonoRequiredDarwinMinimumVersion)</DarwinMinimumVersion> <CurrentVersionCommand>$(MSBuildThisFileDirectory)..\scripts\mono-version</CurrentVersionCommand> - <DarwinMinimumUrl>https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2018-08/128/bc9d709e704fb157eaf4935cb67d272f154cff75/$(_DarwinMonoFramework)</DarwinMinimumUrl> + <DarwinMinimumUrl>https://xamjenkinsartifact.azureedge.net/build-package-osx-mono/2018-10/68/3d170b9afe0cd3b219eadeceb06ad49ac670f48d/$(_DarwinMonoFramework)</DarwinMinimumUrl> <DarwinInstall>installer -pkg "$(AndroidToolchainCacheDirectory)\$(_DarwinMonoFramework)" -target /</DarwinInstall> </RequiredProgram> </ItemGroup> diff --git a/external/mono b/external/mono index 51c4f454..64c566d8 160000 --- a/external/mono +++ b/external/mono @@ -1 +1 @@ -Subproject commit 51c4f454022c7a94115a82998556e92d4b8724a2 +Subproject commit 64c566d8da21a29215c8abfc90fafe9e825404bf ``` * [mono] Change source path for System.IO.Compression test assets * [mono] Bump to include libmono-native.so This is needed because Android on Mono 2018-10 uses System.Native CoreFX code for the first time, via System.IO.FileSystemWatcher * Bump to mono/mono@e632442 * Fix build This commit (9f08ff5) was somehow lost or reverted(!) So it had to be re-applied. * Bump to mono/mono@15fb740 * Run XUnit tests for System.dll These tests include operational tests for the CoreFX FileSystemWatcher and so are also a canary for System.Native issues (at 2018-10, mscorlib.dll still does not use System.Native/libmono-native code) * Revert "Revert unintended changes in previous merge" This reverts commit 5d65346. * Revert "Revert "Revert unintended changes in previous merge"" (So, re-apply "Revert unintended changes in previous merge") This reverts commit e1a31da. This commit broke the build (NUnit test suites crash). * [mono-runtimes] Bundle libmono-native * Include 'libmono-native.so' in .apk * Bump to mono/mono@4a7563ff852 * Test bump * Test bump * Test bump * Remove some of Mono.Android's System.Drawing types which for monodroid is now available via Mono's System.Drawing.Common assembly + CoreFX implementation The types removed from this codebase's side were the ones now conflicting with the System.Drawing.Common assembly as of mono/mono@003bf5d * Add assembly ref to replace removed types * More of the 'replacing types' * Another bump for: [monodroid] Forward the Mono.Android.dll System.Drawing types from System.Drawing.dll too, as that's where Xamarin.Forms.Core.dll (as used by Xamarin Android) expects them to be. * Another bump for: [netstandard] Update for Mono.Android change * Bump 'external/xamarin-android-api-compatibility' for xamarin/xamarin-android-api-compatibility@c704b2a * Update Mono Mac SDK package version used * Complete 'Update Mono Mac SDK package version used' * [Mono.Android] Add type forwarders for the removed System.Drawing types * [tests] repro breaking change with System.Drawing.Common This test was originally failing to build with: The "LinkAssemblies" task failed unexpectedly. Java.Interop.Tools.Diagnostics.XamarinAndroidException: error XA2006: Could not resolve reference to 'System.Drawing.Color' (defined in assembly 'Acr.UserDialogs.Interface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null') with scope 'Splat, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null'. When the scope is different from the defining assembly, it usually means that the type is forwarded. ---> Mono.Cecil.ResolutionException: Failed to resolve System.Drawing.Color at Mono.Linker.Steps.MarkStep.HandleUnresolvedType (Mono.Cecil.TypeReference reference) [0x0001a] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at Mono.Linker.Steps.MarkStep.MarkType (Mono.Cecil.TypeReference reference) [0x00055] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at MonoDroid.Tuner.MonoDroidMarkStep.MarkType (Mono.Cecil.TypeReference reference) [0x00001] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at Mono.Linker.Steps.MarkStep.MarkGenericArguments (Mono.Cecil.IGenericInstance instance) [0x00018] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at Mono.Linker.Steps.MarkStep.GetOriginalType (Mono.Cecil.TypeReference type) [0x00013] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at Mono.Linker.Steps.MarkStep.MarkType (Mono.Cecil.TypeReference reference) [0x00010] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at MonoDroid.Tuner.MonoDroidMarkStep.MarkType (Mono.Cecil.TypeReference reference) [0x00001] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at Mono.Linker.Steps.MarkStep.MarkField (Mono.Cecil.FieldReference reference) [0x00058] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at Mono.Linker.Steps.MarkStep.InitializeFields (Mono.Cecil.TypeDefinition type) [0x00028] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at Mono.Linker.Steps.MarkStep.InitializeType (Mono.Cecil.TypeDefinition type) [0x0006f] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at Mono.Linker.Steps.MarkStep.InitializeAssembly (Mono.Cecil.AssemblyDefinition assembly) [0x00034] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at Mono.Linker.Steps.MarkStep.Initialize () [0x00016] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at Mono.Linker.Steps.MarkStep.Process (Mono.Linker.LinkContext context) [0x00008] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at MonoDroid.Tuner.MonoDroidMarkStep.Process (Mono.Linker.LinkContext context) [0x0000d] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at Mono.Linker.Pipeline.ProcessStep (Mono.Linker.LinkContext context, Mono.Linker.Steps.IStep step) [0x0000f] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at Mono.Linker.Pipeline.Process (Mono.Linker.LinkContext context) [0x00011] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at MonoDroid.Tuner.Linker.Run (Mono.Linker.Pipeline pipeline, Mono.Linker.LinkContext context) [0x00001] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at MonoDroid.Tuner.Linker.Process (MonoDroid.Tuner.LinkerOptions options, Mono.Linker.ILogger logger, Mono.Linker.LinkContext& context) [0x0007c] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at Xamarin.Android.Tasks.LinkAssemblies.Execute (Java.Interop.Tools.Cecil.DirectoryAssemblyResolver res) [0x0030c] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 --- End of inner exception stack trace --- at Java.Interop.Tools.Diagnostics.Diagnostic.Error (System.Int32 code, System.Exception innerException, System.String message, System.Object[] args) [0x0000a] in <8df3e814509d4dc7bbff2ee4d062e14e>:0 at Xamarin.Android.Tasks.LinkAssemblies.Execute (Java.Interop.Tools.Cecil.DirectoryAssemblyResolver res) [0x004cf] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at Xamarin.Android.Tasks.LinkAssemblies.Execute () [0x0001e] in <aa2861304e8349a69bf6f3dda2b1b5bd>:0 at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute () [0x00029] in <1c1ea286ad81486b85647b7901984451>:0 at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask (Microsoft.Build.BackEnd.ITaskExecutionHost taskExecutionHost, Microsoft.Build.BackEnd.Logging.TaskLoggingContext taskLoggingContext, Microsoft.Build.BackEnd.TaskHost taskHost, Microsoft.Build.BackEnd.ItemBucket bucket, Microsoft.Build.BackEnd.TaskExecutionMode howToExecuteTask) [0x00212] in <1c1ea286ad81486b85647b7901984451>:0 We should go ahead and add the test to catch this breakage sooner. * [Mono.Android] add missing type foward to System.Drawing.Color * Bump mono Commit list for mono/mono: * mono/mono@78e155f252d [2018-10] Fix mono conc hashtable lookup endless loop (#13293) * mono/mono@af19147d0bb [Android] Fix runtime loading of DSOs for 64-bit processes * mono/mono@e752907c5b8 [2018-10] [interp] mixed mode fixes for delegates (#13260) * mono/mono@68fb0e0c9ca [mini] Inline Selector.GetHandle for tvOS and watchOS assemblies as well. (#13255) * mono/mono@1f81468bd5d Update csproj file for System.Drawing.Common facade * mono/mono@74cfbd2bb47 [sdks] Use throttle() instead of lock() * mono/mono@f08a9ab1d28 Revert "[sdks] Make sure to run only one build per type per node" * mono/mono@3151b5cea83 [Facades] Add System.Drawing.Common back to monotouch etc profiles * mono/mono@91e8acb9245 [2018-10] [interp] compute size of generic valuetype correctly (#13227) * mono/mono@5849bb2f221 [aot] Resolve profile against compiled assembly (#13182) * mono/mono@f16d2d5d44b [2018-10] [aot] abort lookup early when a method isn\u0027t available in AOT image (#13179) * mono/mono@da38bdc0e42 [ci] Use dl.internalx.com when building on private Jenkins * mono/mono@ea3e93b191f [2018-10] AOT fixes for interp mixed mode (#13172) * mono/mono@b4b86276a4f [System] Bump SocketTest.TestSelect1 socket timeout to 1ms (#13152) Diff: mono/mono@5bd3f0b...78e155f * Bump mono * Bump timeout for a step that has timed out * Fix copy-paste mistake in Xamarin.Android.Common.targets * Bump mono
jonpryor
pushed a commit
that referenced
this pull request
Mar 27, 2019
Build `src/mono-runtimes` using the [Mono Archive][0] (f970cd5), and update `@(MonoProfileAssembly)` and `@(MonoTestAssembly)`. A "funny" thing happened around mono archive support: it didn't work. Specifically, mono archive support was never added to the [mono/2018-08 branch][1]. It *was* added to the [mono/2018-10 branch][2], but mono/mono@dc977160 altered the filename format, preventing `src/mono-runtimes` from using it. There was an [attempt to fix xamarin-android][3], but in the interest of "sanity" and "not doing too much at once," it was [removed][4] from the [mono/2018-10 bump PR][5]: > Is it necessary to intermix the "mono archives" changes along with > the mono/2018-10 bump changes? > > I mean sure, mono/2018-10 has improved support for the mono > archive, but I fear/suspect that the mono archive changes > [are causing the NUnit tests to crash][6], and thus a smaller, more > focused PR may be more desirable (and then deal with the mono > archive changes in a separate PR). Now that [xamarin-android is using mono/2018-10][7], it is time to revisit mono archive support: 1. Fix the mono archive URL that we attempt to download, so that we can actually *find* a mono archive. 2. Fix `src/mono-runtimes` so that we can *build* with the archive. 3. Fix BCL unit test resource usage. 4. Update `@(MonoProfileAssembly)` and `@(MonoTestAssembly)`. 5. Improve unit test name exclusion behavior ~~ Build fixes ~~ Many of the paths that `src/mono-runtimes` looked for were wrong when using the mono archive, e.g. using `external/mono/sdks/builds` when that directory is used for building mono, but when the archive is used that directory is empty. Update those paths to instead use `external/mono/sdks/out`, which is *also* valid for mono source builds *and* for mono archive use. Similarly, `Consts.cs` is a generated file which is included in the mono archive, but we needed to update our path to use it from `external/mono/sdks/out` and not the "normal" build location. Finally, use the `<SystemUnzip/>` task to extract the mono archive `.zip` file. This at least has a *plausible* chance of working on Windows, should we wish to pursue Windows-native support of mono archives. ~~ Unit test resources ~~ The `tests/BCL-Tests`-related projects execute mono-built unit test assemblies, which are included in the mono archive. When we first added support for executing the mono-provided unit test assemblies in e9daf5e, we also included "unit test resources" for extraction on the Android device. These unit test resources were files that the unit test expected to exist as files on the filesystem. The mono unit tests have since been fixed so that these extra resources are now included within the unit test assemblies as `@(EmbeddedResource)`s. There is thus no longer a need to separately package and extract `@(_BclTestContent)`. This allows us to remove and simplify `mono-runtimes.targets`. (Yay!) One ramification of this change is around *satellite assemblies*: `Xamarin.Android.Bcl-Tests.targets` previously would execute the `<AL/>` task in order to compile certain resources into satellite assemblies. This is no longer necessary, as the satellite assemblies are included in the mono archive. However, we do need a way of specifying what the satellite assemblies are; introduce a new `@(MonoTestSatelliteAssembly)` item group to specify them. ~~ Update `@(MonoProfileAssembly)` and `@(MonoTestAssembly)` ~~ Once we had things building, a possible mistake was made: we updated the `@(MonoProfileAssembly)` and `@(MonoTestAssembly)` item groups to include what was in the mono archive. Add a new `build-tools/scripts/gen-ProfileAssemblies.sh` script which will generate the contents of `src/mono-runtimes/ProfileAssemblies.projitems` based on the contents of `external/mono/sdks/out`, which is where the mono archive is extracted. This will generate appropriate `@(MonoFacadeAssembly)`, `@(MonoProfileAssembly)`, `@(MonoTestAssembly)`, and `@(MonoTestSatelliteAssembly)` item groups: build-tools/scripts/gen-ProfileAssemblies.sh > src/mono-runtimes/ProfileAssemblies.projitems On the plus side, updating these item groups needed to be done *anyway*: if there are new unit tests, we should execute them! (This should have been done as part of the mono bumps, but it's easily overlooked.) ~~ Unit test exclusion ~~ Unfortunately, not all of the new unit tests pass: `System.IO.Pipes` doesn't support Android or Linux: [$xUnit] Test FAILED [monodroid_System.Core_xunit-test, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null] Test name: System.IO.Pipes.Tests.AnonymousPipeTest_CreateClient.CreateClientStreamFromStringHandle_Valid Exception messages: System.PlatformNotSupportedException : Operation is not supported on this platform. Exception stack traces: at System.IO.Pipes.AnonymousPipeServerStream.Create (System.IO.Pipes.PipeDirection direction, System.IO.HandleInheritability inheritability, System.Int32 bufferSize) The `MonoTests.System.Web.Services.Description.ServiceDescriptionTest` unit tests also fail: System.TypeInitializationException : The type initializer for 'System.Web.Services.Description.ExtensionManager' threw an exception. ----> System.InvalidOperationException : There was an error reflecting type 'System.Web.Services.Description.HttpAddressBinding'. ----> System.InvalidOperationException : System.Web.Services.Description.HttpAddressBinding cannot be serialized because it does not have a default public constructor Additionally, several of the added `System.Linq.Expressions` tests are not "linker safe" and would fail in Release builds but not Debug builds. Finally, we discovered that our unit test name exclusion strategy in `xunit-excluded-tests.txt` was insufficient, as when xUnit has parameterized tests, those parameters become part of the test name: System.IO.Pipes.Tests.AnonymousPipeTest_Read_ServerIn_ClientOut.AsyncReadWriteChain_ReadWrite(iterations: 5000, writeBufferSize: 1, readBufferSize: 1, cancelableToken: True) I don't want to have to repeat every one of those parameterized variations, as it could quickly become out of date, and determining a complete list would be harder. Improve `XUnitTestRunner.IsIncluded()` twofold: 1. Only require `testCase.Traits` when performing `XUnitFilterType.Trait` filtering. (Some unit tests *lack* traits, and without this change we'd never get around to test name checks.) 2. Improve `XUnitFilterType.TypeName` checking so that if a test name starst with an excluded name followed by a `(`, the test is also skipped. This allows excluding parameterized tests by providing only the name before the `(`. Exclude all of the tests which currently fail in Release builds. [0]: https://github.com/xamarin/xamarin-android/projects/10 [1]: https://github.com/mono/mono/commits/2018-08 [2]: https://github.com/mono/mono/commits/2018-10 [3]: #2366 [4]: #2253 (comment) [5]: #2253 [6]: #2253 (comment) [7]: d87d00f
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
full-mono-integration-build
For PRs; run a full build (~6-10h for mono bumps), not the faster PR subset (~2h for mono bumps)
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Context: https://github.com/mono/mono/blob/8e0cbf1044fb86f40c41f4317ef9154f82a94bb4/scripts/ci/pipeline/sdks-archive.groovy#L84
Context: https://jenkins.mono-project.com/view/Per-commit%20packages/job/archive-mono/
The mono archives have a different filename format than that used in
commit f970cd5. As per
sdks-archive.groovy
, the filename todownload should be:
Update
$(_MonoArchiveName)
accordingly, and fix the output paths sothat the mono archive can actually be used. (As noted in f970cd5,
actual support for building with the mono archive hadn't been
tested, as one didn't exist for the mono xamarin-android uses.)