Skip to content
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

[Xamarin.Android.Build.Tasks] Added missing files from commit 59ec488b #7

Merged
merged 1 commit into from
Apr 25, 2016
Merged

[Xamarin.Android.Build.Tasks] Added missing files from commit 59ec488b #7

merged 1 commit into from
Apr 25, 2016

Conversation

dellis1972
Copy link
Contributor

No description provided.

@jonpryor jonpryor merged commit 835d9d1 into dotnet:master Apr 25, 2016
jonpryor added a commit to jonpryor/xamarin-android that referenced this pull request Mar 7, 2018
Context: https://devdiv.visualstudio.com/DevDiv/_workitems/edit/569184?fullScreen=false
Context: mono/mono#7338
Context: xamarin/maccore#629

Fixes decoding of CMS/PKCS dotnet#7 messages with an explicit cryptographic
object identifier.
jonpryor added a commit that referenced this pull request Mar 7, 2018
Context: https://devdiv.visualstudio.com/DevDiv/_workitems/edit/569184
Context: mono/mono#7338
Context: xamarin/maccore#629

Fixes decoding of CMS/PKCS #7 messages with an explicit cryptographic
object identifier.
jonpryor added a commit that referenced this pull request Mar 7, 2018
Context: https://devdiv.visualstudio.com/DevDiv/_workitems/edit/569184
Context: mono/mono#7338
Context: xamarin/maccore#629

Fixes decoding of CMS/PKCS #7 messages with an explicit cryptographic
object identifier.
luhenry added a commit that referenced this pull request Apr 3, 2018
Commit list for mono/mono:

* mono/mono@59e6eb29e61 [2018-04] [Facades] Add System.Memory facade to mobile profiles (#7968)
* mono/mono@5053d17e50f Bump version to 5.14 (#7954)
* mono/mono@9cd9e3b0a13 [ppc] use ucontext_t
* mono/mono@90b49aa3aeb Merge pull request #7946 from kumpera/wasm_fix_a_few_issues
* mono/mono@21a9412a676 [sdb] Fix --enable-minimal=soft_debug build. Fixes #7920. (#7945)
* mono/mono@95276e9ddb3 Merge pull request #7943 from filipnavara/corefx-sd-tests-1
* mono/mono@cdea795c0e4 [wasm] Make RuntimeInformation properly detect WebAssembly.
* mono/mono@d8648776cc6 [wasm] Bump corert to pick fix for TaskCreationOptions.LongRunning. Fixes #7864.
* mono/mono@106ef365e31 [wasm] Disable the degraded alloc warning under wasm. Fixes #7661
* mono/mono@2bf9a42fd3a [wasm] Fix the build.
* mono/mono@5bdb87b6a67 [wasm] emcc has a broken clock_getime. Disable its usage.
* mono/mono@a810739246b Include CoreFX GraphicsPath and Region tests.
* mono/mono@4723e6603e6 Merge pull request #7915 from alexischr/fix-gh-7568
* mono/mono@2b4208feda5 [System.Windows.Forms] Set NotifyIcon.Icon in test to prevent warning
* mono/mono@a914dbf1734 [System.Windows.Forms] Dispose forms opened during two tests
* mono/mono@fcd52894d9b [System.Drawing] Remove failing jpeg flags tests (#7931)
* mono/mono@254013b0fdf [runtime] Fix class visibility check for protected nested classes. (#7907)
* mono/mono@ebef3ec4b18 [msvc] Update csproj files (#7929)
* mono/mono@2cbd1706dcc [System.Drawing] Enable corefx xunit tests (#7924)
* mono/mono@4d78aaf7b46 [genproj] When using fallback profile selection don't build the projects that were missing a profile (#7926)
* mono/mono@1931cb1dcbc [Tests] Disable hijacking.exe and Jittailcall2.exe tailcall tests. (#7922)
* mono/mono@938415c6d39 [test-runner] Don't output test result xml when no tests are run
* mono/mono@a5a496695a0 Disable building btls/ and support/ on the bcl build, they are not needed. (#7921)
* mono/mono@2e0182b5c06 Implement Field SetValueDirect on non-struct targets. Add test case from roslyn issue 19038. (#7866)
* mono/mono@88cab36c200 [sdks] add Make.config to ignore file (#7901)
* mono/mono@5c839fc1097 Bump msbuild to track xplat-master (#7900)
* mono/mono@f83fbbd9b8a [sdks] Fix LLVM build for XA (#7917)
* mono/mono@a36d08a55ac [perfcounters] fix alignment issue on 32bit
* mono/mono@1e1893d683f [System.IO] Don't throw exception when FileSystemWatcher is disposed while the backend is still trying to use it
* mono/mono@a1751d91c86 Revert "Disable some flaky tests."
* mono/mono@2c14b1f82c2 Revert "Disable a flaky test."
* mono/mono@86df754848d Revert "Disable bug-80307.exe"
* mono/mono@60707875d59 Revert "[sdks] Disable btls and support/ on the bcl build, they are not needed. (#7892)" (#7904)
* mono/mono@6f0fba8961a [Tailcall] Bring coreclr tests for tail calls to Mono source tree (#7204)
* mono/mono@765ea257723 [sdks] Fix LLVM build on Linux for XA + Fix MXE usage on non-Darwin platforms (#7910)
* mono/mono@1d36e15392d [msvc] Update csproj files
* mono/mono@81a781bb02f add some OpenBSD patches (#7699)
* mono/mono@792196320f4 [sdks] Disable btls and support/ on the bcl build, they are not needed. (#7892)
* mono/mono@573e460e97c Fix tarball build
* mono/mono@7ec24235351 [packaging] Bundle the msvc compiled monograph.exe on Windows
* mono/mono@3dad276e2d2 Bump api-snapshot
* mono/mono@77b2db73aaf Add BindingFlags.DoNotWrapExceptions (#7863)
* mono/mono@9ff460b0049 [sdks] Disable wasm on the ios sdk lane. (#7894)
* mono/mono@e70a872c533 [sdks] Fix usage of MXE for XA (#7897)
* mono/mono@5841ffff038 [System.Windows.Forms] Ignore non-visible controls when computing ScrollableControl canvas size (#4247)
* mono/mono@407e254643c [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 (#7893)
* mono/mono@6c901dbfc58 [sdks] Pass MXE_SRC from XA to use `xamarin-android/external/mxe` (#7888)
* mono/mono@ff40ceff387 check for iconv only once (#7873)
* mono/mono@e3e1fe1c16f [corlib] Moves DynamicMethod to mscorlib to work better with wasm (#7875)
* mono/mono@ada6edbad87 [bcl] Fix the compilation of System tests in the mobile profile. (#7882)
* mono/mono@2f66873ab2a [msvc] Update csproj files (#7811)
* mono/mono@753cc874f64 [jit] Add signature checking for CALLI. (#7832)
* mono/mono@ab62d30edb0 [genproj] Move obj to common folder and remove unnecessary properties (#7870)
* mono/mono@8c86a805ff7 [mcs] Updates common array bounds unification to use universal type comparer
* mono/mono@b42086d4504 Use __PASE__ for things i needs that AIX doesn't (#7858)
* mono/mono@f00eba8a7cc Whitelist illinkanalyzer in macOS package (#7861)
* mono/mono@4a247e7ed9a Merge pull request #7740 from alexischr/corefx-unknownunix-fsw
* mono/mono@03a153c7b36 Bump API snapshot submodule
* mono/mono@e6f90edfcd1 [System]: Disable the System.Net.ServicePoint tests from corefx.
* mono/mono@0f9b7f730f8 mono_perfcounter_counter_names returns incorrect names, and restructure slightly for clarity (#6355)
* mono/mono@9b36f1452f4 wcf: fix index of message body parts. Do not use MessageBodyMemberAttribute.Order as index.
* mono/mono@3c8bf90a40e [System.IO] Use CoreFX FileSystemWatcher stub for mobile profile
* mono/mono@6caa9bd8812 Disable a flaky FileSystemWatcher test
* mono/mono@7e31c5d11f7 Merge pull request #7849 from marek-safar/corefx-fixes
* mono/mono@294707cf882 [build] Fixes bootstrap invocation of cil-stringreplacer
* mono/mono@dc1ef2ea3a2 [runtime] One more MonoClass getter fixup (#7836)
* mono/mono@dc6700a799f [corlib] Restores ConcurrentDictionary serialization support.
* mono/mono@32e6bccc2d1 [System] Makes TLS providers linker friendly
* mono/mono@554690a64cd [build] Update monolite package to support cil-stringreplacer (#7847)
* mono/mono@96e8fa67e2f [bcl] Fix Cscompmgd/I18N.Rare not having any tests (#7842)
* mono/mono@3157302581e Pull in bug 53272 fix
* mono/mono@16d5c314094 [ci] Bundle nunit xml results in a .tar file (#7843)
* mono/mono@5e1acb47f5d [genproj] Deduplication of project references (#7844)
* mono/mono@b20d5ce1e5d [runtime] Rework how the native-to-managed eh callback is called. (#5837)
* mono/mono@2b663424a04 [threads] Remove suspicious mono_gchandle_free
* mono/mono@f66032b7c0f Fix F# build. (#7826)
* mono/mono@e610e443cd6 Structure field that cannot be marshalled throws exception instead of aborts\n Alllow structure pointer conversion for blittable multi-dimentional arrays (#7794)
* mono/mono@febd5ac5358 MonoClass getters mop-up PR (#7806)
* mono/mono@a5099ca2a44 [mini] Use MonoClass getters in method-to-ir.c (#7772)
* mono/mono@2ce121ab7b1 [sre-save] Remove type_token assignment in mono_image_fill_export_table (#7803)
* mono/mono@2f5077a1fba [sdks] Fix the ios sdk build. (#7801)
* mono/mono@dde9ee5e79e [w32handle] Lower minimum memory usage (2nd attempt) (#7508)
* mono/mono@30903764c24 [sdks] Fix Android build for toolchain (#7817)
* mono/mono@2709d2309e6 [mini] Use MonoClass getters on non-AMD64 platforms (#7799)
* mono/mono@506fc0b522f [genproj] Deduplication of sources (#7810)
* mono/mono@331f3d9f27e Fix warnings and cleanup style. (#7800)
* mono/mono@954911d3f1a Genproj updates for BCL build in Windows Visual Studio (#7755)
* mono/mono@431c67415cf [mini] Use MonoClass getters in aot-compiler.c (#7773)
* mono/mono@76f01933880 [ci] For checked builds, pass -k to make (#7802)
* mono/mono@43d9c4737bc Imports FtpWebRequest from CoreFX (#7644)
* mono/mono@bc25029b580 Disable some flaky tests.
* mono/mono@901ccebb0ac [sdks] Disable the interpreter on ios device builds. (#7793)
* mono/mono@e3c284c4e36 CodeOwners update (#7798)
* mono/mono@74daf13fb29 Harden JIT job control against cctors deadlocking. (#7423)
* mono/mono@7bb6e59e38c [runtime] Fix lock tracer compilation error (#7767)
* mono/mono@1bdcf191697 [corlib] System.Collections from CoreFX (#7478)
* mono/mono@3aeab61192b [mini] Use MonoClass getters in a few files (#7771)
* mono/mono@158bb416eb0 [interp] Use MonoClass getters (#7774)
* mono/mono@b06de64bf86 Fallback to listing drives in My Computer using System.IO.DriveInfo.
* mono/mono@b8fdce6c053 [Tailcall] Fix virtual generic methods that F# tests uses. (#7524)
* mono/mono@066ce338255 Add tailcall support & fix floating point ABI (#7695)
* mono/mono@d233bdbf998 [icall] remove DISABLE_PROCESS_HANDLING (#7779)
* mono/mono@7de72fbf3f0 [interp] support increment and decrement of nint/nuint
* mono/mono@d4247747510 [interp] improve error message and add another interp_in signature
* mono/mono@dfabaa59175 Remove incorrect docs (#7784)
* mono/mono@67e995c6e27 [interp] Improve mixed mode execution support, using full-aot+interp as the configuration. (#7764)
* mono/mono@9c63d1bf9df [sdks] Fix Android build for mxe (#7781)
* mono/mono@8a3b4bf2af0 [sdks] Fix Android build on Linux (#7775)
* mono/mono@95d450660be [interp] move variable decl into ifdef to avoid unused warning (#7763)
* mono/mono@392e1c368c3 [Tailcall] Proper fix for F# regression, at least some architectures. (#7658)
* mono/mono@45c94b22ab3 [sdks] Fix Android build (#7768)
* mono/mono@d856789ccd4 Bump corefx to bring a fix for #7696
* mono/mono@9bc0a49bc78 [runtime] Fix the cross compiler build. (#7754)
* mono/mono@3d2891097a7 Merge pull request #7748 from lambdageek/fix-gc-descr-object-c
* mono/mono@3283af3449d [msvc] Update csproj files
* mono/mono@3ec9fda3718 [System.Core] Guard against embedded NUL in strings for MemoryMappedFiles (#7318)
* mono/mono@6822a57663b Disable a flaky test.
* mono/mono@54e3eccc5d8 [build] Bump bootstrap mcs dependency for mcs builds to catch up with e6fb82b2c7b4a8f42827f9a952dec0a03ae9c8c9
* mono/mono@99d31278e35 [interp] always set old_frame in interp_entry (#7757)
* mono/mono@c2698519b0c [interp] Allocate ThreadContext structures on the heap instead of on the stack, the latter doesn't work in mixed mode if the native frame gets unwound during exception handling, so the set_context (NULL) call is never executed, leaving a dangling ref in the tls variable. (#7747)
* mono/mono@678576f5a8c [System.Windows.Forms] Reset check state of item when removing it. (#7744)
* mono/mono@87fd0714126 Revert "Swap Close/Dispose calls so that the receiver_thread_main loop will be properly interrupted (#7390)" (#7745)
* mono/mono@9b702e8052f Bump API snapshot submodule
* mono/mono@e6fb82b2c7b Bump bootstrap dependency
* mono/mono@7a9f8405d49 [corlib] String from CoreFX/CoreRT
* mono/mono@20ba08543e4 [corlib] Use UTF8 bytes convertor directly
* mono/mono@d9e3d7c4075 Remove dead code (#7738)
* mono/mono@c732bd47584 This fixes an issue we are seeing with VSTU debgugging in Unity. (#7634)
* mono/mono@7faa4620462 Fix bug #60843 and add test (#7640)
* mono/mono@d26fb8a3eb3 Forward mono_string_new_wrapper to mono_string_new for error handling. (#7718)
* mono/mono@d5d1fb290d0 Bump roslyn-binaries to include missing file
* mono/mono@dd09fa9982d [mcs] Adds cloning for TupleLiteralElement expressions (#7746)
* mono/mono@3fa3592376c Uncomment and fix ServiceHost creation via ServiceFactory in SvcHttpHandler.cs (#3465)
* mono/mono@74dd088d400 [metadata] Add mono_class_publish_gc_descriptor
* mono/mono@f42fdeca61b [mcs] Fixes codegen for null fixed string statement
* mono/mono@8e3be153357 [metadata] Move mono_class_compute_gc_descriptor back to object.c
* mono/mono@9e4eb1ca69a Bumps roslyn to 2.7.0
* mono/mono@dc0cf83b3a8 [arm] fix stack alignment for structs (#7691)
* mono/mono@0dec8fda18c [sgen] Fix scanning of large arrays (#7672)
* mono/mono@39c9f9d935d Merge pull request #7724 from lewurm/wildcardconnect-watchos
* mono/mono@e40c97e7718 [interp] Disable pinvoke3.exe test on x64 (#7739)
* mono/mono@06463f4ca2a [Tailcall] Add interface tailcall tests, and generics thereof. (#7703)
* mono/mono@9914517a125 Remove obsolete code for getting TLS values from other threads. (#7714)
* mono/mono@9fe7008d97f [HttpClientTest] remove WildcardConnect () on WatchOS
* mono/mono@7dea71ce64b Touchup for https://github.com/mono/mono/pull/7599/
* mono/mono@37660898982 Merge pull request #7599 from lambdageek/abort-cctor-no-protection
* mono/mono@f617929e9e2 [runtime] Don't use clock_gettime on WatchOS and tvOS.
* mono/mono@081c79e6871 Add csc-dim script to .gitignore
* mono/mono@7cc78d08b09 Merge pull request #7707 from mono/fix-boottime-osx-10.7
* mono/mono@9cf2550ba2d Update man page, MONO_DISABLE_AIO is now MONO_ENABLE_AIO. (#7715)
* mono/mono@16e6e7df70a [sgen] Finish thread pool work before shutting down threads (#7647)
* mono/mono@e480620040e [System]: Fix a race condition that was exposed by #7358 (see #7668).
* mono/mono@120aa248fa5 [sdks] Fix building the ios device tests. (#7706)
* mono/mono@a5c6f5c5ca2 [w32file] do not discard sub-second resolution for access- and writetime if possible (#7650)
* mono/mono@b37166882de [runtime] Fix file handle leak with dedup+aot (#7694)
* mono/mono@feb8b568bab [mprof-report] Fix reading of TYPE_JITHELPER events in v13 files. (#7677)
* mono/mono@b77313855c2 [loader] Don't load framework Facade assemblies that are older than expected. (#7663)
* mono/mono@62921c8a62e [runtime] Don't use clock_gettime in MacOS.
* mono/mono@7528656820c [msbuild] Bump msbuild to pick up fix for issue #7184 (#7665)
* mono/mono@53a59ccf766 [sdks] Fix building the ios tests. (#7701)
* mono/mono@1c8b460b4cf [version.h] Support .git being a submodule (#7689)
* mono/mono@e99ac890e6a Add csc-dim as a prototype if default interface implementation
* mono/mono@7aeaafd2819 [runtime] Fix mono_msec_boottime () so it compiles on older ios versions, clock_gettime () is only available from ios 10. (#7671)
* mono/mono@8ae317a1e82 [arm64] Add a known TLS offset. (#7530)
* mono/mono@b6f56a115fc [Tailcall] Cleanup, handle varargs, cleanup varargs handling, be sure not to use unsupported tailcall_membase, pass r11 through, align patches. (#7600)
* mono/mono@249a02d9366 Updates codeowners (#7679)
* mono/mono@5232bef2825 Disable a flaky FileSystemWatcher test (#7578)
* mono/mono@540ef385faa If a bad header is received from the client or the connection is broken, send an internal VM_DISPOSE command to shut down the debugger thread properly.  This prevents runtime hangs that occur during profile events after the debugger shuts down.
* mono/mono@68a9bbe69f8 Update Server.py to run on both python 2 and 3
* mono/mono@2f211770198 Merge pull request #7584 from alexischr/fix-gh-6940
* mono/mono@fe3c5134bf5 Implement C#7 binary literals (#7659)
* mono/mono@421e0174793 [System.Windows.Forms] Fix bounds manipulation in Control.DrawToBitmap (#7629)
* mono/mono@d3e2518fb60 [sdks] Fix concurrent building of MonoAotOffsetsDumper.exe + Simplify building of support library (#7652)
* mono/mono@e36148dbd26 [tests] Prevent starvation by thread doing GCs (#7651)
* mono/mono@ec4c990af3e [System.Net] Replace use of obsolete `SupportsIPv6` property.
* mono/mono@43415f5f2b5 [threads] Add mono_uninstall_current_handler_block_guard
* mono/mono@92042c97323 [threads] Delay abort via handler block guard when in abort protected block.
* mono/mono@b0734593de5 [tests] Run abort-cctor.exe on the coop Jenkins job
* mono/mono@ea4274f2eb7 Revert "[Tailcall] Proper fix for F# regression." (#7656)
* mono/mono@fdbf51184ac [msvc] Update csproj files (#7654)
* mono/mono@b2271853c33 [Tailcall] Proper fix for F# regression. (#7621)
* mono/mono@9b3893f84a1 [tests] Class should be viable even if cctor is aborted in in nested finally clause
* mono/mono@247a13b081f [System.Windows.Forms] Improve logic for closing complex ToolStripDropDown layouts. (#7630)
* mono/mono@5d23a12446d [System.Windows.Forms] Unify layout engines for Controls and ToolStripItems (#7612)
* mono/mono@6bdeea15030 [jit] Incorrect code under mono --trace. (#7627)
* mono/mono@395b37c2865 Fix issue #7596 on Windows x64. (#7625)
* mono/mono@5820d1fc668 [sgen] Use current nursery size when computing allowance (#7601)
* mono/mono@52429673dc6 [mini] Don't inline methods if they're going to be instrumented for coverage. (#7554)
* mono/mono@851b36ecb25 [mini] Improve error reporting by using MonoError around more places. (#7607)
* mono/mono@6906c9dc40a  [interp] Don't crash when freeing delegate ftnptr  (#7586)
* mono/mono@2883e562e2d Fix platform-specific build issues (#7342)
* mono/mono@2d0eee9ae33 [jit] Fix partially shared constrained calls in llvmonly mode. (#7561)
* mono/mono@ec319e6de7a [aot] Increase the buffer size in emit_exception_debug_info (). (#7638)
* mono/mono@ff61c7751a6 [build] Fixes mcs only dist build
* mono/mono@4b88e2a0e29 [System]: Introduce `WebCompletionSource<T>` and use it in `WebOperation`. (#7358)
* mono/mono@29c2ba9387f Merge pull request #7520 from alexischr/use-coreclr-GetTickCount
* mono/mono@7e3a1ddaa09 [mcs] Fixes parsing ref-struct with partial keyword
* mono/mono@87282805504 [sdks] IOS fixes. (#7617)
* mono/mono@40b53bd2e0e [corlib] Handle multiple segments in IsolatedStored::GetFileNames. Fixes bxc #11771
* mono/mono@8ceead93e3e [Tailcall] Quick fix for building F#. Do not tailcall any method with a vtable_arg. (#7609)
* mono/mono@1c88a115453 [Coop thread threadpool mmap] Convert more functions to coop/handle. (#7097)
* mono/mono@239aad5265b [msvc] Update csproj files
* mono/mono@34b4d35fb78 [runtime] Clean up symbol names to not pollute the global namespace.
* mono/mono@1d70b627704 [profiler] Increment ref count of an image's method while we're keeping around pointers to it.
* mono/mono@6b116cca186 [merp] only target macOS, HOST_DARWIN includes iOS etc. as well
* mono/mono@40924c47ba0 [Mono.Data.Sqlite] Throw better exception for missing mobile support
* mono/mono@a856f8d8e48 [Tailcall] Cleanup is_supported_tail_call, put more logic in it, and be sure not to tailcall_mem_base if not supported (i.e. virtual_ not just CALLVIRT) (#7608)
* mono/mono@7e7d8a3b4fc [Facades] Make System.Net.Http.Rtc.dll a net_4_x only facade (#7590)
* mono/mono@5f572ff7a62 [msvc] Update csproj files
* mono/mono@6e246cf6134 [Facades] Move types from Facades into class libraries (#7574)
* mono/mono@4e3389667f6 [System.Xml] Update source file location from commit d4816ef1abcfc5b3dea41a87fe5a7a4c4a3781ed
* mono/mono@8c3d7c81af7 [System.Windows.Forms] Fix custom test targets in makefile. (#7571)
* mono/mono@9dbd080c293 [System.Windows.Forms] Update code for top-level windows (#7570)
* mono/mono@e85dbca0f2f Disable TestBug8592BasicOperations test
* mono/mono@b1d2b858251 Make Form scaling tests platform independent.
* mono/mono@cdb9b90baa4 Correcting typos for ISSUE_TEMPLATE.md (#7575)
* mono/mono@99198da52be [msvc] Update csproj files (#7559)
* mono/mono@16b3884854c Disable bug-80307.exe
* mono/mono@a601516ca1f [tests] Disable delegate-15.exe in the full-aot profile. (#7529)
* mono/mono@8f926ed4648 [ppdb] Set the column number in mono_ppdb_lookup_location ().
* mono/mono@78de6719641 Swap bytes for port number as Win32 API returns in network order.
* mono/mono@3b0c0bd1cff Build system tweaks for AIX (#7542)
* mono/mono@486036b6964 Revert "[Tailcall] Do not create never-executed trampoline for tail.call self. (#7331)" (#7550)
* mono/mono@06a4273d73c [mono-time] Replace mono_msec_boottime() with CoreCLR implementation. Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=58413
* mono/mono@e456f910530 Bump api-snapshot
* mono/mono@9a2b5324ee3 [Facades] Add missing Facades that exist in .NET 4.7.1 (#7541)
* mono/mono@b6be2e11a79 [threads] Fix race between abort socket syscall and thread shutdown (#7507)
* mono/mono@4ae98fb31b5 Merge pull request #7515 from kumpera/le_debugger_cleanup
* mono/mono@868a402137d [metadata] split IL generation code into seperate compilation units. (#7487)
* mono/mono@826f15a509a [interp] Fix return of value type from interp to native (#7519)
* mono/mono@f24a6d622be gboolean g_is_usermode_native_debugger_present (void). (#7488)
* mono/mono@03914603a3b [runtime] Add MS telemetry reporter for unmanaged exceptions (#7451)
* mono/mono@d3a4e19f3ca Merge pull request #7533 from akoeplinger/disable-test
* mono/mono@63e5e80d3a6 [bcl] Fix test build with mcs (#7512)
* mono/mono@14485be705f [System.Windows.Forms] Fix lifetime of Graphics objects in TextBox controls (#7491)
* mono/mono@b9d52fc4f12 [System] Disable SocketTest.AcceptBlockingStatus
* mono/mono@91b64b4560b [System.Windows.Forms] Fix bugs in PrintPreviewControl. (#7493)
* mono/mono@ee30689c181 Implement native ValueType Equals and GetHashCode support for pointer fields
* mono/mono@4532cf5fd55 [interp] Fix stack usage after throw (#7461)
* mono/mono@523ba159c2b [sgen] Fix the clearing of bits in the gc descriptor bitmap when using weak fields.
* mono/mono@660e166c7b6 [eglib] Fix typo in g_assertf (#7458)
* mono/mono@c745a9575d0 [jit] Move the check for open constructed types later in mono_jit_compile_method_with_opt (), this function can receive (#7494)
* mono/mono@25f4ef27897 [wasm] Make switching between debug/release builds easy. Build pdb files.
* mono/mono@eba41fd88a6 [wasm] Update SDK driver to handle debugging.
* mono/mono@334ddbd3ef6 [wasm] Initial support for debugging.
* mono/mono@1a56fe6a159 [wasm] Fix unwinding to work with the general unwinder.
* mono/mono@ccbb873498b [interp] Fix pinvoke from dynamic methods
* mono/mono@4ad92ef05f7 [interp] Fix detection of pinvoke call
* mono/mono@940f2d1a9fe [interp] Fix runtime invoke of pinvoke method
* mono/mono@e0f8597e9c9 Fix generated file when passing --bundled-header (#6736)
* mono/mono@b4ee86154fc [Tailcall] tail.callvirt support for AMD64 JIT (#7426)
* mono/mono@c2bf82fb98f [System]: WebRequestStream now throws correct exception on cancellation (#7074).
* mono/mono@8e4f0d8ff44 [Tailcall] Do not create never-executed trampoline for tail.call self. (#7331)
* mono/mono@ab67bcfd0bf Provide compile-tests-parallel that honors the command line so e.g. (#7479)
* mono/mono@3e8f4f7db8d [msvc] Update csproj files (#7497)
* mono/mono@a5f980dc00f [interp] Let the backend deal with thiscall cconv
* mono/mono@8b2ca1344f7 [interp] Fix EH with exception thrown from icall
* mono/mono@da7650d3d96 Bump API snapshot submodule
* mono/mono@03b030d9213 TaskAwaiter from CoreFX
* mono/mono@12557bec396 [metadata] An array is not an IEnumerator`1
* mono/mono@1140ec53948 [test] An array is not an IEnumerator`1
* mono/mono@c0a5753b02a [metadata] Add IEnumerator`1 to MonoDefaults struct
* mono/mono@36a471f14e5 [System] Remove compiler config sections for types which cannot be instantiated
* mono/mono@32d06fd8036 [corlib] Fix Type.GetInterface() to find implemented interface when "ignoreCase: true" is used (#7464)
* mono/mono@1181815eeda [w32handle] Lower minimum memory usage (#7465)
* mono/mono@e6de24c2d19 [build] Unify DEFAULT_REFERENCE handling so I can override it with TARGET_NET_REFERENCE for individual tools
* mono/mono@73859e3df28 [msvc] Update csproj files
* mono/mono@e64cd8cc8da [profiler] Use accessor functions for MonoClass fields
* mono/mono@4e6f5f10fd2 nuget-hash-extractor: Add msbuild extensions nuget version from vs15.6 msbuild branch
* mono/mono@45f30c307b9 nuget-hash-extractor: Change the nuget repo name to use for
* mono/mono@695acd0a0b9 System.Text.RegularExpressions from CoreFX (#7363)
* mono/mono@85b605042b7 [acceptance-tests] Actually disable gcsuppressfinalize.exe test
* mono/mono@c89abe54670 Bump boringssl submodule.
* mono/mono@47df243579f [mini] unpack function pointers for jump patching
* mono/mono@095519c8996 [ppc] update define usages for creating/unpacking function descriptors
* mono/mono@4fea7fb7451 [ppc] use new patching machinery
* mono/mono@ffaf5ffe0f8 [mini-runtime] unbreak platforms where MONO_ARCH_HAVE_PATCH_CODE_NEW isn't defined
* mono/mono@8ba4947f7a3 [metadata] Use MonoClass getters in the rest of metadata/ (#7354)
* mono/mono@6f225e6176a [System.Windows.Forms] Fix inconsistent state of Document object (#7422)
* mono/mono@9e1ba501ffd Fix for gcc 4.4; nominal support for older. (#7419)
* mono/mono@56263d4a756 [mini] Virtual call target is never known, remove dead code. (#7424)
* mono/mono@62c8557a7a3 [System.Security] Fixes decoding of CMS/PKCS #7 messages with an explicit cryptographic object identifier
* mono/mono@02abf28216f [corlib] Ignore TimeZoneTest.TestCtors on iOS under certain conditions due to an Apple bug. (#7429)
* mono/mono@d1ed53624bf [acceptance-tests] Disable gcsuppressfinalize.exe test that started failing
* mono/mono@b664dfe79ff [System.Windows.Forms] Updated unit tests (#7405)
* mono/mono@30ad2195339 [mixed mode] skip gsharedvt_out_sig_wrapper frames and improve regression test
* mono/mono@dab1ffc081c [interp] use mini infrastructure for stack walking
* mono/mono@a785bd16e94 Merge pull request #7401 from filipnavara/swf-layout
* mono/mono@d2bf59dd3f4 PPC support for BoringTLS
* mono/mono@ee4ed72695d [acceptance-tests] Add an env var to turn on some Mono debugging options. (#7386)
* mono/mono@4af9e3a5114 [Coop] Convert System.Enum to coop/handle. (#7131)
* mono/mono@7c34f0c7467 [packaging] Support setting the FULL_VERSION number via env vars (#7414)
* mono/mono@f546b95edfe [runtime] Increase the BCL trampoline count (#7409)
* mono/mono@fe95e4b34b0 [jit] Fix the patching of tail calls for gshared methods, the caller and the caller were using different instantiations to search the jump_target_hash.
* mono/mono@56bf6d3a738 Bump API snapshot submodule
* mono/mono@ff60734df40 Add unit test for TextBox.PreferredSize property and fix updating the preferred size cache on Text change.
* mono/mono@58f25ff1f0f Add makefile rule to build and run the notepad sample.
* mono/mono@7b6b6075672 Remove obsolete code from FlowLayoutPanel that is no longer necessary with the corrected nested layouts.
* mono/mono@ae972579de4 When Form is set to AutoSize enforce it also as the minimum size for the window manager.
* mono/mono@f1de56d31cb Update XplatUI backends to properly send WM_WINDOWPOSCHANGED for zero-sized windows.
* mono/mono@e563776f62f Avoid couple of size recalculations by streamlining the SetBounds, SetBoundsInternal and SetBoundsCore methods. Now explicit bounds are only updated in SetBoundsCore, no more all the updating and restoring with UpdateBounds calls. Rely on the WM_WINDOWSPOSCHANGED message to be sent from XplatUI.SetWindowPos to call UpdateBounds. This avoids an explicit call to XplatUI.GetWindowPos and UpdateBounds in SetBoundsCore.
* mono/mono@ff38080cc07 Fix for bug_82326 unit test.
* mono/mono@af26d754ae1 Fix couple of relayouts causing incorrectly cached control preferred size. Fix events triggered in incorrect order when Control.Controls.Remove is called. Update Dispose behavior with events and exceptions to match the reference implementation more closely.
* mono/mono@5feb428acd5 Update DisposeTest to work on latest version of .NET Framework.
* mono/mono@4f3adb750d1 Add test for label self-sizing behavior.
* mono/mono@376002afb4a Call LayoutEngine.InitLayout when appropriate and move the dist_right and dist_bottom calculation there.
* mono/mono@a859588486d Add cache for PreferredSize value.
* mono/mono@016a5a86792 Fix propagating layout to parents and then back to children when PreferredSize changes.
* mono/mono@71931189fa7 Remove obsolete code for layout of AutoSize forms.
* mono/mono@622ad5480da Unify the code for layout of anchored controls to avoid setting the bounds twice for controls with AutoSize set to true.
* mono/mono@78ad684762f Fix the default layout engine and its quirks enough to pass all unit tests again.
* mono/mono@cbb07605df2 Move GetPreferredSize implementations from container classes to respective LayoutEngine implementations. Rework the layout engines to use AutoSizeInternal property since TextBoxBase has its own AutoSize that should not be respected by layout engines. Rework automatic sizing behavior of TextBoxBase to return correct values. Rework TableLayout completely to use same code for layout and calculation of preferred size.
* mono/mono@d758a6d65fb Fix updating panel references when assigning TableLayoutSettings to TableLayoutPanel.
* mono/mono@71989c037e7 Ignore invisible controls in FlowLayout.
* mono/mono@ca957c45b42 Apply size constrains to control sizes when calculating flow layout.
* mono/mono@4b093a9d2d2 Apply size constrains to control sizes when calculating flow layout preferred size.
* mono/mono@6943077ab90 Added missing support for flow breaks in FlowLayoutPanel's preferred size calculation.
* mono/mono@eed14424e50 Add tests for FlowLayoutPanel.PreferredSize.
* mono/mono@a3690115557 Apply the constraints when setting MinimumSize/MaximumSize and update the unit test to demonstrate it.
* mono/mono@78f4b60e6ca Reduce memory pressure by reusing the LayoutEngine objects.
* mono/mono@f56b7109424 Added missing PerformLayout() calls to Control.MinimumSize and MaximumSize setters.
* mono/mono@18001b61a3a Apply Maximum/MinimumSize constraints when calculating the preferred size.
* mono/mono@1417a68137c Update Label.InternalGetPreferredSize to take the proposed size into account.
* mono/mono@73c8e1f6156 Fix Label automatic sizing code.
* mono/mono@baf431b393a [metadata] Use mono_atomic_store_release to initialize gparam cache
* mono/mono@486be78f8a9 Update README.md with current directory structure
* mono/mono@965a813f51d [msvc] Update csproj files (#7404)
* mono/mono@0c6f7fa7c53 [mcs tests] fix runtime arguments passing to test harness (#7400)
* mono/mono@9725d50c872 [sre] Use MonoClass getters in sre-save.c (#7352)
* mono/mono@15578eab17c Bump corert
* mono/mono@43ac34b36e2 [sdks] Unify targets to build runtimes (#7394)
* mono/mono@e7ba41d14c7 Swap Close/Dispose calls so that the receiver_thread_main loop will be properly interrupted (#7390)
* mono/mono@24c52e28c0b Use VSCMD_ARG_TGT_ARCH env in mkbundle on Windows when trying to autoetect target architecture. (#7281)
* mono/mono@4874e18fd23 [corlib] Remove IVT for S.R.I.RuntimeInformation facade (#7385)
* mono/mono@a9c37afaa45 [sdks] Fix the ios build.
* mono/mono@16e5f049600 [interp] remove `method` field from `InterpFrame`
* mono/mono@182a7485865 [runtime] Use MonoClass getters in object.c
* mono/mono@2713dfc5776 [metadata] Move MonoClass:gc_descr and runtime_info initialization to class-init.c
* mono/mono@9abe6ebf590 [appdomain] Fix path clobbering when trying to shadow copy siblings
* mono/mono@76d5a164473 [Test] Reenable HttpRequestIgnoreBadCookies in monotouch. (#7330)
* mono/mono@bbb882b0181 [sdks] Add watch device build.
* mono/mono@b4d53f4d7c8 [sdks] Add watch simulator build.
* mono/mono@dd5e5c8239d [sdks] Add tv simulator build.
* mono/mono@6cc113a4b35 Ios sdk changes (#7258)
* mono/mono@d8e49b1c279 Fix build from tarballs due to missing corefx.unix.sources
* mono/mono@076557c37f4 Use attribute(deprecated) instead of attribute(error). (#7362)
* mono/mono@68376f1f9b2 [msvc] Update csproj files (#7367)
* mono/mono@319749c3148 Make it build.
* mono/mono@d51e55d4a31 Bump linker to its latest master.
* mono/mono@a838b6fb39e [interp] Enable more tests (#7315)
* mono/mono@8ddcea29564 [profiler] A few low-hanging enhancements. (#7314)
* mono/mono@ddf4e7be31b Update ppc badge to correct URL in README
* mono/mono@db635611434 Merge pull request #7341 from akoeplinger/dont-throw-in-dispose
* mono/mono@fa21013d7f0 Don't throw NotImplementedException in Dispose()
* mono/mono@2c2fac29ebc [msvc] Update csproj files (#7337)
* mono/mono@4f9b89adc17 CoreFX System.Runtime.CompilerServices (#7118)
* mono/mono@cb956b58a6a Revert "Revert "[System.IO] Integrate FileSystemWatchers from CoreFX The FSEvent CoreFX watcher becomes the new default for MacOS.""
* mono/mono@fdefcf1f25b Fix build
* mono/mono@2174a521a3e Revert "[System.IO] Integrate FileSystemWatchers from CoreFX The FSEvent CoreFX watcher becomes the new default for MacOS."
* mono/mono@f5b10f34a98 [System.IO] Integrate FileSystemWatchers from CoreFX The FSEvent CoreFX watcher becomes the new default for MacOS.
* mono/mono@872c0488308 [wasm] Add a missing dependency in wasm.
* mono/mono@8facc4afb2c [System]: Use new `WebCompletionSource` instead of `TaskCompletionSource`. (#7293)
* mono/mono@dfe6e2d4a2c Merge pull request #7321 from mono/fix-linuxarm-native-stacktrace
* mono/mono@9648645fb38 [System]: Enable some System.Net.Requests tests from CoreFX. (#7080)
* mono/mono@ce2584911fb Fix gdb not being used for native stacktraces in some cases
* mono/mono@096147d4286 [tests] Add --repeat parameter to enable runtime tests to run multiple times (#7291)
* mono/mono@a5da7b21f4b  [runtime] Implement thread info flags and get rid of tools threads. (#7226)
* mono/mono@e8141fc31da [sdb] Fix VirtualMachine.CreateEnumMirror () so it works with types from non-root domains.
* mono/mono@b8da9736209 [marshal] Use MonoClass getters in marshal.c (#7253)
* mono/mono@2f9b9142cde [msvc] Update csproj files (#7310)
* mono/mono@6ca674ed686 Update the random checking code in autoconf to this decade (#7250)
* mono/mono@b1801b78044 Always enable explicit null checks for AIX (#7300)
* mono/mono@31c03a9cbe7 [System.Windows.Forms] Remove dependency on Hwnd objects outside of XplatUI code. (#7243)
* mono/mono@6ac20034175 bump nunitlite
* mono/mono@216b5c5db8b Merge pull request #7286 from lambdageek/fix-gh-7095
* mono/mono@909b30b5ba0 [wasm] Fix v8 provisioning. (#7244)
* mono/mono@cfaa28e1d81 [threads] Reduce race window with async abort (#7274)
* mono/mono@f901c70548b [runtime] Don't assert in mono_class_is_assignable_from on iface gtd
* mono/mono@8d37ddbf1dd [runtime] Use MonoClass getters in a few small files (#7254)
* mono/mono@375304d501f [test] System.Type.IsAssignableFrom of gtd array special interfaces.
* mono/mono@d63e8b6f5ae [corlib] CompareInfo from CoreFX (#7272)
* mono/mono@c152f67574c Merge pull request #7263 from filipnavara/swf-carbontests
* mono/mono@de8dc8311da Merge branch 'master' into swf-carbontests
* mono/mono@ffbb3d90aee Merge pull request #7234 from filipnavara/swf-painteventend
* mono/mono@5705b3d2070 Update CODEOWNERS
* mono/mono@905077f90fc Add zlib.lib/zlibstatic.lib in Windows VS mkbundle build when using -z argument.
* mono/mono@d69c1568f62 Remove mention of MONO_THEME from man page. (#7282)
* mono/mono@dabdacd99b4 [metadata] Cache GenericParamInfo for anonymous gparams in MonoImage (#7155)
* mono/mono@94f8dcf102d [wasm] Add LTO release configuration. Saves 15% of binary size. (#7221)
* mono/mono@ba40177a44c Merge pull request #7269 from filipnavara/swf-theme-obsolete
* mono/mono@8ebc608febb [Tailcall] Add 11 tests that are all runnable, never crash, are self checking. (#7232)
* mono/mono@120be0fa4e6 Remove obsolete Nice theme code.
* mono/mono@e2e66cb4f8f [wcf] use ConcurrentDictionary for wait handles (#7265)
* mono/mono@8739c9b05a5 Bump api-snapshot
* mono/mono@5aafe83bbdd Activate MDI child windows after showing them (fixes 7 unit tests failures).
* mono/mono@cb48d78dc66 Return dummy value in XplatUICarbon.IconSize to let System.Windows.Forms.SystemInformationTest.IconSizeTest pass.
* mono/mono@091595f3d8f Fix the default font value in test.
* mono/mono@0d524452c54 Make XplatUICarbon.SetFocus send messages synchronously, fixes 9 unit tests.
* mono/mono@bb99dcade28 Fix windows creating, destroying and message processing in Carbon driver to be stable enough not to freeze the test suite.
* mono/mono@cde44408a4a Spit out the name of a test along with the error about undisposed forms.
* mono/mono@0a2d57ed674 Call XplatUI.PaintEventEnd when an exception happens in OnPaint.
* mono/mono@931380017f7 Unregister thread exception handler at the end of test.
* mono/mono@0129c25e435 [tests] Use RemoteExecutor from corefx
* mono/mono@335ca28eaf9 [llvm] Pass only the imt argument if both imt and rgctx arguments are required.
* mono/mono@c99ac6a87e5 Add missing XplatUI.EndLoop call.
* mono/mono@a974057d929 [sdks] Merge mxe-Win32 and mxe-Win64 targets since we are building both in XA anyway
* mono/mono@1af92912945 Fix layout of ColorDialog on systems with different window border sizes.
* mono/mono@657c7637fb2 Fix typo in implementation of Disposing property.
* mono/mono@67e557fa2e3 Handle more special keys in KeysConverter to ensure compatibility with designer generated resource files.
* mono/mono@6d889314b2e Remove obsolete theme code (disabled by commits 910c669 and 93724d2) and the last remaining usage of MONO_THEME environment variable.
* mono/mono@67c1708677a Add PointerValue.Value to dereference and access pointer value. (#6840)
* mono/mono@9bbe5e5e5f8 Bump API snapshot submodule
* mono/mono@392d3452f24 [System.Net.Http] Better exception message for invalid header value
* mono/mono@798c5efa52a Fix bug 18941: Marshal.OffsetOf and Marshal.SizeOf return incorrect results (#7142)
* mono/mono@bfdbc1e6768 Update the method signatures in the new X11 backend.
* mono/mono@1f0fc93de4c [sgen] Check if we are exceeding the worker count limit (#7180)
* mono/mono@12cbe9a7bd2 [msvc] Update csproj files (#7238)
* mono/mono@d45fb4e882f Fix xamarin-android issue 1130 and add test (#6326)
* mono/mono@a32ca3e2c28 [tests] Avoid false pinning in weak-fields test
* mono/mono@1e9816a10e9 [tests] Avoid false pinning in tests
* mono/mono@38846ee7548 Properly handle non-quoted multipart content dispositions
* mono/mono@bf12b6318af Simplify System.Windows.Forms XplatUI code by adding PaintEventArgs parameter to PaintEventEnd.
* mono/mono@9c55770f3fd [icall table] add ldflags for bitcode
* mono/mono@a9aa188ab22 Make field tokens sequential in SRE. (#7055)
* mono/mono@1804219600c [xbuild] add property that is available in msbuild (#7223)
* mono/mono@03371921a18 Problem building on Arch linux #7200 (#7230)
* mono/mono@481827b6af1 [runtime] Don't prepend '0x' to %p-formatted numbers.
* mono/mono@5eb41919438 [build] Remove multi stage build from Mono.Security (#7171)
* mono/mono@218ffb98835 Merge pull request #7225 from alexischr/bump-bockbuild
* mono/mono@2b068cb5a44 Fix some enable minimal. (#7195)
* mono/mono@ca47362a921 Fix mono_arch_setup_async_callback and add mono_arch_setup_resume_sighandler_ctx on PPC (#7159)
* mono/mono@6e0c91f0533 [interp] add another signature for interp_in wrappers
* mono/mono@c382b03fd51 [coop] Rename mono_threads_is_coop_enabled to convay better its semantic (#7178)
* mono/mono@8900231c8b0 [mini] More minor JIT cleanups. (#7130)
* mono/mono@983966c7ca1 [bockbuild] Detect HTTP errors  when using curl
* mono/mono@0a8126c2094 [WASM] Implement timers. (#7193)
* mono/mono@f0b78251899 Updates to support building the BCL using Visual Studio 2017 on windows (#6877)
* mono/mono@123d086e27e Merge pull request #6892 from lambdageek/use-getters
* mono/mono@c1cbe060f61 Merge pull request #7218 from mono/revert-6018-fix_10087
* mono/mono@49a1c8423cd Disable a flaky test on Windows https://github.com/mono/mono/issues/7199
* mono/mono@199dad7e84e Revert "Run the ProcessExit events in the threadpool and enforce a 3 seconds limit. Fixes #10087"
* mono/mono@72e5ca60b89 [msvc] Update csproj files
* mono/mono@c6f91eaa58c Fix unknown-length requests being treated as if they are fully preloaded. (#6822)
* mono/mono@119cf5259e9 [aot] Emit the same instances in hybrid aot mode as in full aot mode.
* mono/mono@f90612e047e [bcl] Comment/stub out some unused icalls to prevent problems with AOT. (#7183)
* mono/mono@3addbfe6279 Merge pull request #7181 from mono/bockbuild-download-using-curl
* mono/mono@8a52f590fc4 Bump bockbuild for https://github.com/mono/bockbuild/pull/62
* mono/mono@d4816ef1abc [System.Xml] Remove reflection calls for value has to be set
* mono/mono@8ce0775a031 [jit] Disable partial sharing during JITting, its only been tested in full aot mode, and doesn't seem to work with JITted methods. (#7161)
* mono/mono@2d2033e4401 Use proper sized integer for ioctlsocket on Win32. (#7153)
* mono/mono@89804e62bbd [mono-api-html] Expand "ignore" functionality (#7154) (#7175)
* mono/mono@df273181b52 Merge pull request #6018 from kumpera/fix_10087
* mono/mono@03b6095e3eb [runtime] Magic interfaces requires the complex stelemref to handle arrays. Fixes gh #6266 (#7038)
* mono/mono@761ddc60f9d [corlib] Make MissingMember exceptions working again after #6123
* mono/mono@735337d5e68 [metadata] Implement MONO_CLASS_IS_INTERFACE(c) in terms of public API
* mono/mono@bae5cd2d6e0 [metadata] (class.c) Use MonoClass getters
* mono/mono@f6364860459 [metadata] add missing MONO_ENTER/EXIT_GC_SAFE guards around access(2) in is_file_writable (#7126)
* mono/mono@d2383c037df [corlib] Support terminals without color support
* mono/mono@705223f6d55 [interp] Use frame_addr as base pointer in more places (#7128)
* mono/mono@5b0503a5b39 [profiler] Some minor housekeeping. (#7123)
* mono/mono@ec2faf03880 [wasm] Fix master and add sample. (#7160)
* mono/mono@ad03afd96ed [msvc] Update csproj files (#7173)
* mono/mono@a85911f480e Merge pull request #6034 from alexischr/bug-59400
* mono/mono@8658bb6048f [build] Don't add specific support file to all xunit test builds (#7163)
* mono/mono@a19fad65f3f Fix copyright
* mono/mono@7de96dd4121 Merge pull request #7150 from alexischr/bug-46473
* mono/mono@5fabb059cfc Add Mono-specific System.Net.Test.Common.Configuration.Http. (#7156)
* mono/mono@d7551cc9bf0 [metadata] Improve error message for loading unresolved types (#7147)
* mono/mono@2837f433d94 [corlib] Fix RuntimeFeatureTest.NoNewFeaturesAdded on mobile (#7149)
* mono/mono@1426d6a8da8 [remoting] Synchronize serializer/deserializer usage for call data. Fixes #46473
* mono/mono@18e274b14b7 Bump corefx submodule
* mono/mono@045acb8f198 [jit] Handle more cases for gsharedvt constrained calls. (#7081)
* mono/mono@3b8ec9e97b1 [wasm] Fix the port to work with the latest version of emcc. (#7091)
* mono/mono@eef0801f3e3 Assorted fixes for AIX and i (#6934)
* mono/mono@38989b012ff [Coop] Convert many simple mono_object_new_checked to mono_object_new_handle. (#7129)
* mono/mono@dd4dbd8d4b1 [System.ServiceModel] Prevent crash in Dispatcher.ListenerLoopManager… (#7136)
* mono/mono@1791e50b56b [class] Fix resolution of interfaces in classes implementing IEnumerator. Fixes #59400
* mono/mono@7b120ae2d46 [msvc] Update csproj files (#7140)
* mono/mono@98cadff5f6a bump nunit-lite
* mono/mono@ecadc6cf319 [wasm] Make .stamp-depot-tools more reliable. (#7078)
* mono/mono@9b1e845740d [corlib] order sources content
* mono/mono@bf3ed7115b2 [corlib] Add System.Runtime.ProfileOptimization APIs (#7120)
* mono/mono@6a01a0b314b WinForms: Enable external CocoaDriver external driver (#7100)
* mono/mono@a65c354f7b2 Bump api-snapshot submodule
* mono/mono@4d52a10ca04 [mini] Move some arch-specific interpreter logic into backends and provide stubs.
* mono/mono@4358581865b [mini] Don't use arch_target to point to arch/ subdirs.
* mono/mono@e9c51fa3e5f [mini] Use a MONO_ARCH_INTERPRETER_SUPPORTED define instead of checking archs in driver.c.
* mono/mono@23acd0f78be Fix for XA integration
* mono/mono@7da8b503c6d [msvc] Update csproj files
* mono/mono@f6a6779ff5b [corlib] CoreRT System.Threading.Tasks (#6672)
* mono/mono@ed951069656 Coop/handle conversion of ByteArrayToCurrentDomain and ByteArrayToRootDomain. (#6692)
* mono/mono@c4d1da6ef3c [master] [sdks] Fix for XA integration (#7103)
* mono/mono@a7ed34f4db6 Centralize handle-based post-object creation code. (#7096)
* mono/mono@79ef9d5105d Fix race condition in mono_thread_execute_interruption.  (#6833)
* mono/mono@d7626e8217f [coop] Add handle-based object create functions. (#6876)
* mono/mono@aec2773e1db Revert "[System.Drawing] Disable tests except on ARM64 (#6909)"
* mono/mono@83ed33ba2c0 [Coop] Convert Console to Coop/Handles. (#7060)
* mono/mono@b043ff5f747 [aot] Bump aot file format version because of 7cac757e60cd61aa070f7e0fffca225364f58c0c. (#7079)
* mono/mono@ded74c0b12a Use the preallocated domain->out_of_memory_ex instead of allocating. (#6819)
* mono/mono@52514effbf1 [marshal] For generic method icalls, handle generic param arguments when using coop handles
* mono/mono@e01355eead8 [Cplusplus] Fix possible race condition and add casts between void* and function pointers. (#6871)
* mono/mono@9209ea06298 Merge pull request #7073 from mono/disable-test-sleep
* mono/mono@cfa087bfd74 [aot] Rename mono_aot_get_method_checked () to mono_aot_get_method (), there is no non-checked version anymore. (#7071)
* mono/mono@e2419dee784 [interp] Add missing exception checkpoints (#6917)
* mono/mono@1028994a882 Disable a flaky test on PRs (https://github.com/mono/mono/issues/6999)
* mono/mono@cf644472f9f [msvc] Update csproj files (#7070)
* mono/mono@23e6f6f4b58 Revert "[jit] Make some JIT regression test files compile in the mobile profile (#7059)" (#7069)
* mono/mono@b7385ba797b [sdks] Add targets for the watch cross compiler. (#7061)
* mono/mono@fc7bda62d35 [coop] Convert some `mono_exception_*` functions Reduce managed exposure in utils a little.
* mono/mono@e2874db5227 [jit] Make some JIT regression test files compile in the mobile profile (#7059)
* mono/mono@ea1fac3d898 [coop] Remove unnecessary write barriers against thread locals and cleanup a little. (#6874)
* mono/mono@3bd630eba79 [mkbundle] Automatically bundle config files and machine.config files (#7002)
* mono/mono@b90d8ec387a Remove GetNLSocket which is unused and produces a warning because it is unprototyped. (#6691)
* mono/mono@4a83009a036 WSL does not nul terminate uname.release. memset(0) it first. (#7023)
* mono/mono@8d826997362 Merge pull request #7057 from lewurm/interp-disable-flaky-pinvoke-test
* mono/mono@62bf8bd4d52 [System.ServiceModel.Activation] Move ServiceHostFactory.cs where it's used (#7044)
* mono/mono@2322177e6ae [interp] disable flaky pinvoke test
* mono/mono@8ad191dfbb2 mono_get_exception_runtime_wrapped_checked contains an unnecessary 16 (#6659)
* mono/mono@20e69fa1996 Centralize post-object creation code in mono_object_new_common_tail. (#6903)
* mono/mono@a33cbb873c4 [interp] Fix native to interp transition (#6868)
* mono/mono@7cac757e60c [aot] Emit the weak field indexes table using the MONO_AOT_TABLE code, so it works with separate aot data files/bitcode.
* mono/mono@8c90350d114 Add denied assembly versions from previous ms extensions nugets
* mono/mono@47187bbc9b5 [Mono.Posix] .NET Core compatibility - Use [In,Out] for arrays of structures
* mono/mono@57f3f34e60e Revert "[coop] Remove support for invoke thunk wrapper" (#6927)
* mono/mono@8d19e5a1c59 [runtime] Unboxing of nullable enums should throw for boxed ints. (#6958)
* mono/mono@8f35227b886 [debugger] disable StepOutAsync test because it's flaky
* mono/mono@545191f7732 Pass null-terminated string for logging
* mono/mono@2c1f45f3791 [TermInfo] support new file format terminfo2 introduced with ncurses6.1 (#6960)
* mono/mono@3012ce06e43 Update F# to 4.1.33
* mono/mono@ff989895794 [runtime] Avoid recreating the icall table in lookup_icall_symbol (). (#6988)
* mono/mono@17b4b28f050 [sdk] Fix the invocation of run-step.sh, the --timeout argument is mandatory. (#7013)
* mono/mono@3fdbbe5e44b [sdks] Fix the tar command since the llvm binaries are in different directories now. (#7010)
* mono/mono@f4d3da6d4ac [runtime] Fix merge conflict and Move code to its right place.
* mono/mono@c3c6e6c9cdf [runtime] Ignore FireProcessExit if the method is missing on corlib.
* mono/mono@b9b08c0d02e [runtime] Implement a domain resistant version of mono_domain_foreach and switch the unloading code to use it.
* mono/mono@755c5bd7137 [runtime] Fix docstring for mono_unhandled_exception_checked.
* mono/mono@4f8968cf6c9 [corlib] Fix minor style issue.
* mono/mono@1fd32df7d1a [runtime] Introduce a non-fatal unhandled exceptions and use it for AppDomain::ProcessExit.
* mono/mono@c9c7dad3a3a Bump mono/NUnitLite
* mono/mono@dd2c320aa39 [runtime] Change domain before firing ProcessExit.
* mono/mono@7500341ec03 [runtime] Run the ProcessExit events in the threadpool and enforce a 3 seconds limit. Fixes #10087
* mono/mono@6e28ccb4e5b [utils] Add "exec" log category for misc runtime activity.
* mono/mono@96f2d163a33 Merge pull request #6970 from dsyme/patch-1
* mono/mono@e52ef6aedd1 [build] Fixes monolite build (#6982)
* mono/mono@36cbab657f4 [msvc] Update csproj files
* mono/mono@f61bc393d34 Simplify MonoError and managed Exception creation (#6123)
* mono/mono@60d4907f48e [runtime] Revert mkbundle defaulting behavior made in ca8b8bd346 (#6687)
* mono/mono@d8d3e29f382 Bump api-snapshot
* mono/mono@03549126030 Bump F# mono version to 4.1.32
* mono/mono@d573dec96ea Bump linker and update linker-analyzer references
* mono/mono@d6e74834549 [interp] Fix CEE_UNBOX
* mono/mono@7a528f6f97d [sre] Unlock loader lock on error paths (#6951)
* mono/mono@e572acca552 [ci] Only create artifacts.json GitHub status on release branches
* mono/mono@939d7207708 [ci] Disable monodoc tests on Windows for now
* mono/mono@ea7b3849c48 Cleanup recent JIT fix to get it done in the right place. (#6895)
* mono/mono@29d402d8e0d [handle] Have `MONO_HANDLE_*` macros use a uintptr_t instead of int (#6906)
* mono/mono@25c41cbf419 Fix gshared support for default interface methods by always passing an mrgctx to them. (#6935)
* mono/mono@1c631424d26 Merge pull request #6929 from mono/disable-test-TaskCancelWait1
* mono/mono@dcecd8ff83b Disable flaky test
* mono/mono@b97d0c43d1c [System]: WebConnection.Connect() needs to probe all IP addresses.
* mono/mono@e43adf3cd5a Change mono_thread_resume_interruption to return void, one less raw pointer to worry about. (#6690)
* mono/mono@c944c358f13 [scripts] Fix scripts/update_submodules.sh for use with git worktree
* mono/mono@7f9167bc5b6 [runtime] Fix the --enable-icall-symbol-map build. (#6943)
* mono/mono@921132a3622 [runtime] Make icall tables loadable. (#6905)
* mono/mono@d8beb3ef110 [profiler] Remove obsolete code coverage support from the log profiler. (#6896)
* mono/mono@48898cb810c [sdks] Fix ios+llvm. (#6939)
* mono/mono@7f47f190859 [runtime] Fix a warning. (#6937)
* mono/mono@b970e766fad [interp] Add class failure checks
* mono/mono@52ebab86031 [interp] Fix varargs passing
* mono/mono@3369b6e2143 [interp] Align vt stack in some places
* mono/mono@6ffa48f6ada [interp] Add define for value type alignment
* mono/mono@9f2b8595a34 [jit] Fix the DISABLE_JIT build. (#6933)
* mono/mono@5c4510a8a7f [runtime] Implement support for conflict detection for Default Interface Methods. (#6897)
* mono/mono@284c5afdf43 Bug 60088 - Assertion at ../../../../external/mono/mono/mini/debugger-agent.c:4765, condition `array->len == 1' not met (#6902)
* mono/mono@6a5a14bea78 [System.Threading.Tasks] Disable a flaky test
* mono/mono@dcda4c77bc9 Disable some PngCodecTest that have trouble on CI right now
* mono/mono@5e7483f3542 [System.Drawing] Disable tests except on ARM64 (#6909)
* mono/mono@dd5b5ca52e0 Set NetworkStream.ReadTimeout in WebConnection.InitConnection(). (#6904)
* mono/mono@2a3b0812a40 [jit] Simplify some gshared code. (#6899)
* mono/mono@2a3c498cbfb [interp] disable test_42_arm64_dyncall_vtypebyval
* mono/mono@43617b0123a nuget-hash-extractor: Add msbuild extensions nuget to list of nugets to
* mono/mono@4cb78844774 nuget-hash-extractor: Add support for handling nuget with multiple
* mono/mono@d2998f5089d [msvc] Update csproj files
* mono/mono@71ad99f7206 [build] Narrow recursive dependencies
* mono/mono@b3d60257e57 [Mono.Security] Remove unused using
* mono/mono@06b836ed912 [wasm] Make v8 build verbose and fix zip package root. (#6900)
* mono/mono@06a89a59bcd Adjust tabbing.
* mono/mono@b2ec39daa5a Add ordinal comparison when matching request path to listener paths
* mono/mono@8917ddfb0c7 Fixes WCF methods with path parameters in UriTemplate annotation. Bugzilla bug #25444 [https://bugzilla.xamarin.com/show_bug.cgi?id=25444]
* mono/mono@f3b1c9bd880 Pick the Listener that matches the start of the request URL
* mono/mono@c84e6c81a2b [bcl] Fix more assembly identity mismatches (#6870)
* mono/mono@9adf4bd3220 [wasm] Add system test suite exclude file. (#6847)
* mono/mono@b6784b27a52 [sdks] Fix build for iOS (#6878)
* mono/mono@3f61f9ff5df configure.ac: Only use library path in libgdiplus_loc
* mono/mono@af03c6ae83c Detect libgdiplus in configure.ac by default on MacOSX (darwin). (#6873)
* mono/mono@b3eabd51c36 Bump bockbuild
* mono/mono@8bfcb271470 [System]: Revert my latest WebResponseStream changes.
* mono/mono@b9d463acb50 Bump bockbuild to get new gtk+ repo location
* mono/mono@8e678de3f39 [msvc] Update csproj files
* mono/mono@a5078a28154 Bump bockbuild to add gtk# generator fix (#6880)
* mono/mono@3203c8bfb30 Merge pull request #6835 from alexischr/disable-monitor-wait-test
* mono/mono@fcb97b22799 [sdks] Add Android build for CI (#6846)
* mono/mono@149073b84c6 Use gpointer (void*) as a generic pointer, not char*. (#6704)
* mono/mono@31784ba06c0 [reference-assemblies] Fix public key for some newer v4.7.1 facades (#6863)
* mono/mono@1ad2fc48918 [sdks] Fix download-llvm.sh
* mono/mono@9cab3d73c6e [timezone] ignore LocalId test on XAMMAC_4_5 too
* mono/mono@2c96890aff2 [sdks] Fix execution permission of download-llvm.sh
* mono/mono@e9235144ca2 Bump corefx. (#6810)
* mono/mono@766bf49afbe [metadata] Define getters for MonoClass fields (#6652)
* mono/mono@c1fd4b064de Add stubs for Interop.NetSecurityNative (#6824)
* mono/mono@d813c533b9e [arm64] Handle arguments of type ArgVtypeOnStack in the dyn call code. Part of the fix for #59184. (#6826)
* mono/mono@d79a892d775 [configure.ac] Do not always enable ninja (#6823)
* mono/mono@0a3d7c0da6e Disable a couple of flaky tests (monitor-*abort)
* mono/mono@43026da5d4c [sdks] Bring back download of llvm for iOS (#6818)
* mono/mono@f8a4bbd3573 [ci] Add setting artifacts.json status
* mono/mono@687dc212dc0 [ci] Add Windows .msi PR build (#6815)
* mono/mono@4b8e0bea198 [interp] Add support for vararg call convention
* mono/mono@f6786099a59 [glib] Include ALIGN_TO and ALIGN_PTR_TO
* mono/mono@d3647fa17e5 [interp] Add storage fetching for typedbyref
* mono/mono@c8b7d6eece1 [interp] Add class check for refanyval
* mono/mono@b66cbf955f5 [interp] Remove virtual call duplicated code
* mono/mono@c3c2819da70 [interp] Remove void call duplicated code
* mono/mono@ed9e0d101d0 [interp] Rename variable
* mono/mono@f6964ef658e [interp] Remove some null checks
* mono/mono@e8cdc382a74 Bump API snapshot submodule
* mono/mono@1dd3fd1c644 Add missing api to System.Data (fixes 6767)
* mono/mono@386b4d2bc64 [Mono.Posix] Fix the Android xattr check to not disable it on all other platforms.
* mono/mono@9317773e68a [tests] Disable threads-init.exe, it runs out of system threads. (#6803)
* mono/mono@63652bfc259 [utils/threads] Gracefully handle ENOTSUP from pthread_kill () on Apple platforms. (#6754)
* mono/mono@96082e34954 Fix some function pointer types to match, i.e. so C++ compiles w/o extra casts. (#6732)
* mono/mono@ed4331a3d8d [ide] Add setup file for VSCode
* mono/mono@993ed19a6ff [metadata] Move MonoClass initialization to a separate file (#6611)
* mono/mono@f01083ac485 [runtime] Add a 'frame_addr' field to MonoStackFrameInfo, which is equal to either interp_frame or ctx->sp. (#6644)
* mono/mono@c0bd5f8a5a6 [sdks] Script lldb android integration (#6310)
* mono/mono@c7f89e78379 [ci] Make sure packageFileName is a string
* mono/mono@51ec3ddf99e Bump version to 5.13 (#6792)
* mono/mono@da037803709 [System]: WebResponseStream now correctly reads the chunk trailer when using gzip/deflate. (#6771)
* mono/mono@0bfda265b76 [ci] Report pending/failed status on GitHub for pkg/msi
* mono/mono@46823915996 [ci] Include commit hash in blob URL of pkg/msi

Diff: https://github.com/mono/mono/compare/c17d8c6dcdc8089868e39316ad214edc7e42b3a3...59e6eb29e6182dc65df6c91d07ce24ad17d539e7

https://bugzilla.xamarin.com/show_bug.cgi?id=46473
https://bugzilla.xamarin.com/show_bug.cgi?id=59184
https://bugzilla.xamarin.com/show_bug.cgi?id=59400
https://bugzilla.xamarin.com/show_bug.cgi?id=60843
radical pushed a commit that referenced this pull request May 8, 2018
When `JniRuntime.CreationOptions.DestroyRuntimeOnDispose` is true,
`JavaVM::DestroyJavaVM()` will be invoked when the `JniRuntime`
instance is disposed *or* finalized.

`JreRuntime.CreateJreVM()` would *always* set
`DestroyRuntimeOnDispose` to true, because it called
`JNI_CreateJavaVM()`, so *of course* you'd want to destroy the
Java VM, right?

Which brings us to unit tests. I don't know of any "before all test
fixtures run" and "after all test fixtures run" extension points,
which means:

1. The JVM needs to be created implicitly, "on demand."
2. There's no good way to destroy the JVM created in (1) after all
    tests have finished executing.

Which *really* means that the `JreRuntime` instance is *finalized*,
which sets us up for the unholy trifecta of AppDomain unloads,
finalizers, and JVM shutdown:

For unknown reasons, ~randomly, when running the unit tests (e.g.
`make run-tests`), the test runner will *hang*, indefinitely.

Attaching `lldb` and triggering a backtrace shows the unholy trifecta:

Finalization:

	thread #4: tid = 0x403831, 0x00007fff9656bdb6 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_1403'
	  ...
	  frame #10: 0x00000001001ccb4a mono64`mono_gc_run_finalize(obj=<unavailable>, data=<unavailable>) + 938 at gc.c:256 [opt]
	  frame #11: 0x00000001001cdd4a mono64`finalizer_thread [inlined] finalize_domain_objects + 51 at gc.c:681 [opt]
	  frame #12: 0x00000001001cdd17 mono64`finalizer_thread(unused=<unavailable>) + 295 at gc.c:730 [opt]

JVM destruction:

	thread #4: tid = 0x403831, 0x00007fff9656bdb6 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_1403'
	  frame #0: 0x00007fff9656bdb6 libsystem_kernel.dylib`__psynch_cvwait + 10
	  frame #1: 0x00007fffa04d4728 libsystem_pthread.dylib`_pthread_cond_wait + 767
	  frame #2: 0x000000010ba5bc76 libjvm.dylib`os::PlatformEvent::park() + 192
	  frame #3: 0x000000010ba38e32 libjvm.dylib`ParkCommon(ParkEvent*, long) + 42
	  frame #4: 0x000000010ba39708 libjvm.dylib`Monitor::IWait(Thread*, long) + 168
	  frame #5: 0x000000010ba398f0 libjvm.dylib`Monitor::wait(bool, long, bool) + 246
	  frame #6: 0x000000010bb3dca2 libjvm.dylib`Threads::destroy_vm() + 80
	  frame #7: 0x000000010b8fd665 libjvm.dylib`jni_DestroyJavaVM + 254

AppDomain unload:

	thread #37: tid = 0x4038fb, 0x00007fff9656bdb6 libsystem_kernel.dylib`__psynch_cvwait + 10
	  frame #0: 0x00007fff9656bdb6 libsystem_kernel.dylib`__psynch_cvwait + 10
	  frame #1: 0x00007fffa04d4728 libsystem_pthread.dylib`_pthread_cond_wait + 767
	  frame #2: 0x0000000100234a7f mono64`mono_os_cond_timedwait [inlined] mono_os_cond_wait(cond=0x0000000102016e50, mutex=0x0000000102016e10) + 11 at mono-os-mutex.h:105 [opt]
	  frame #3: 0x0000000100234a74 mono64`mono_os_cond_timedwait(cond=0x0000000102016e50, mutex=0x0000000102016e10, timeout_ms=<unavailable>) + 164 at mono-os-mutex.h:120 [opt]
	  frame #4: 0x0000000100234828 mono64`_wapi_handle_timedwait_signal_handle(handle=0x0000000000000440, timeout=4294967295, alertable=1, poll=<unavailable>, alerted=0x0000700000a286f4) + 536 at handles.c:1554 [opt]
	  frame #5: 0x0000000100246370 mono64`wapi_WaitForSingleObjectEx(handle=<unavailable>, timeout=<unavailable>, alertable=<unavailable>) + 592 at wait.c:189 [opt]
	  frame #6: 0x00000001001c832e mono64`mono_domain_try_unload [inlined] guarded_wait(timeout=4294967295, alertable=1) + 30 at appdomain.c:2390 [opt]
	  frame #7: 0x00000001001c8310 mono64`mono_domain_try_unload(domain=0x000000010127ccb0, exc=0x0000700000a287a0) + 416 at appdomain.c:2482 [opt]
	  frame #8: 0x00000001001c7db2 mono64`ves_icall_System_AppDomain_InternalUnload [inlined] mono_domain_unload(domain=<unavailable>) + 20 at appdomain.c:2379 [opt]
	  frame #9: 0x00000001001c7d9e mono64`ves_icall_System_AppDomain_InternalUnload(domain_id=<unavailable>) + 46 at appdomain.c:2039 [opt]

This randomly results in deadlock, and hung Jenkins bots.

Fix this behavior by altering `JreRuntime.CreateJreVM()` to *not*
override the value of
`JniRuntime.CreationOptions.DestroyRuntimeOnDispose`. This allows the
constructor of the `JreRuntime` instance to decide whether or not the
JVM is destroyed.

In the case of TestJVM, we *don't* want to destroy the JVM.

This prevents the JVM from being destroyed, which in turn prevents the
hang during process shutdown.
grendello added a commit to grendello/xamarin-android that referenced this pull request Jul 18, 2018
Xamarin.Android uses the ILRepack
task (https://www.nuget.org/packages/ILRepack.Lib.MSBuild.Task/) to repack/merge
the `Xamarin.Android.Build.Tasks` assembly, a step that is performed after the
`Xamarin.Android.Build.Tasks` project build completes. The step takes the
project's output assembly and several other dependencies and merges them into
one, replacing the original output assembly. For the majority of time it works
flawlessly, however the scenario described below causes a Mono runtime
crash (similar to this one mono/mono#9613, although
not identical).

The crash causes aren't yet know in every detail, but the high level overview of
the issue is as follows. Mono runtime uses the `mmap(2)` system call on Unix to
map the on-disk image of the assembly into memory. The mmapped area is used
whenever the same assembly is loaded (e.g. via `Assembly.LoadFrom`) into the
application to save time and memory. The memory is mapped as private which means
that anything written to the mapped area by the Mono process is effectively
discarded, that is not reflected in the file on disk. The protection, however,
doesn't work in the other direction - when an external process (or even the same
Mono process) writes to the file that was mmapped. Unfortunately, the OS kernel
behavior in such instance is left undefined by the POSIX standard - the kernel
can choose to reflect the on-disk change in the mapping or ignore it. On macOS
the write is ignored, on Linux, however, the write leads either to the SIGBUS
signal being sent to the process or corruption to the mmapped memory
area (details of how this happens are, as of yet, unknown - it's just a theory
at this point). The problem occurs in our case when the `ILRepacker` task
overwrites the `Xamarin.Android.Build.Tasks.dll` assembly with its
merged/repackaged form and that, somehow, corrupts Mono runtime's memory mapping
of that assembly, eventually leading to a segfault:

  #0  0x00007f974fd1b23a in __waitpid (pid=pid@entry=120561, stat_loc=stat_loc@entry=0x7f9712162b9c, options=options@entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:30
  #1  0x000055b471f36c96 in dump_native_stacktrace (ctx=0x7f97121637c0, signal=0x55b472147cd3 "SIGSEGV") at mini-posix.c:719
  #2  0x000055b471f36df2 in mono_dump_native_crash_info (signal=signal@entry=0x55b472147cd3 "SIGSEGV", ctx=ctx@entry=0x7f97121637c0, info=info@entry=0x7f97121638f0) at mini-posix.c:742
  #3  0x000055b471ecc620 in mono_handle_native_crash (signal=signal@entry=0x55b472147cd3 "SIGSEGV", ctx=ctx@entry=0x7f97121637c0, info=info@entry=0x7f97121638f0) at mini-exceptions.c:2938
  dotnet#4  0x000055b471e4c82c in mono_sigsegv_signal_handler (_dummy=7, _info=0x7f97121638f0, context=0x7f97121637c0) at mini-runtime.c:3441
  dotnet#5  <signal handler called>
  dotnet#6  __strcasecmp_l_avx () at ../sysdeps/x86_64/multiarch/strcmp-sse42.S:199
  dotnet#7  0x000055b471fb2105 in mono_assembly_names_equal_flags (l=l@entry=0x7f96e0004370, r=r@entry=0x7f97307edb60, flags=flags@entry=MONO_ANAME_EQ_IGNORE_CASE) at assembly.c:663
  dotnet#8  0x000055b471fa7baf in mono_domain_assembly_search (aname=0x7f96e0004370, user_data=0x0) at appdomain.c:2242
  dotnet#9  0x000055b471fb10f7 in mono_assembly_invoke_search_hook_internal (aname=aname@entry=0x7f96e0004370, requesting=requesting@entry=0x0, refonly=0, postload=postload@entry=0) at assembly.c:1755
  dotnet#10 0x000055b471fb4526 in mono_assembly_load_from_predicate (image=image@entry=0x7f96e001aae0, fname=fname@entry=0x7f96e000bc50 "/home/grendel/vc/xamarin/monodroid/monodroid/external/xamarin-android/src/Xamarin.Android.Build.Tasks/../../packages/ILRepack.Lib.MSBuild.Task.2.0.15.4/build/ILRepack.Lib.MSBuild.Task.dll", asmctx=asmctx@entry=MONO_ASMCTX_LOADFROM, predicate=predicate@entry=0x0, user_data=user_data@entry=0x0, status=status@entry=0x7f9712163fd4) at assembly.c:2638
  dotnet#11 0x000055b471fb635c in mono_assembly_open_predicate (filename=<optimized out>, filename@entry=0x7f96e000ae40 "/home/grendel/vc/xamarin/monodroid/monodroid/external/xamarin-android/src/Xamarin.Android.Build.Tasks/../../packages/ILRepack.Lib.MSBuild.Task.2.0.15.4/build/ILRepack.Lib.MSBuild.Task.dll", asmctx=MONO_ASMCTX_LOADFROM, predicate=predicate@entry=0x0, user_data=user_data@entry=0x0, status=status@entry=0x7f9712163fd4) at assembly.c:2206
  dotnet#12 0x000055b471fabd42 in ves_icall_System_Reflection_Assembly_LoadFrom (fname=..., refOnly=<optimized out>, error=0x7f9712164050) at appdomain.c:2272
  dotnet#13 0x00000000412f4007 in ?? ()
  dotnet#14 0x00007f97440e1918 in ?? ()
  dotnet#15 0x00007f9749bd1800 in ?? ()
  dotnet#16 0x00000000e36e75af in ?? ()
  dotnet#17 0x00007f974434fda8 in ?? ()
  dotnet#18 0x00007f9749bd18e0 in ?? ()
  dotnet#19 0x00007f96e0002820 in ?? ()
  dotnet#20 0x00007f9712164160 in ?? ()
  dotnet#21 0x00007f9712164010 in ?? ()
  dotnet#22 0x0000000000000000 in ?? ()

The crash occurs in frame 7, because the `r` parameter (an instance of the
`MonoAssembly` structure) contains pointers that used to point to valid places
in the `Xamarin.Android.Build.Tasks` assembbly's mmaped area, but now point to
garbage data. One of those corrupted pointers is the ASCII assembly name - which
is used by the function in frame 7.

The situation can be detected by the runtime by using advisory locks and
reporting the attempt to overwrite the mmapped area, however a fix would require
creating a copy of all the assembly's in-memory data before the write is allowed
and that might be too expensive. None of those measures are currently
implemented by Mono (and it isn't sure if any of them will ever be implemented).

The crash this commit fixes occurs in a very specific scenario - when building
the `OpenTK.csproj` project *directly* (that is passing it as parameter to
`msbuild`), which causes a the `Xamarin.Android.Build.Tasks` assembly to be
loaded for use in the `<UsingTask/>` msbuild statement, but at the same time
`OpenTK.csproj` references the `Xamarin.Android.Build.Tasks` *project* which
causes the ILRepacker task to run unconditionally, attempting to repack the
assemblies again and leading to the crash described above.

The fix, courtesy of @jonpryor, is to make the ILRepacker target not run every
time but only whenver the assembly has to be re-packed because it has just been
rebuilt.
grendello added a commit to grendello/xamarin-android that referenced this pull request Jul 19, 2018
Xamarin.Android uses the ILRepack
task (https://www.nuget.org/packages/ILRepack.Lib.MSBuild.Task/) to repack/merge
the `Xamarin.Android.Build.Tasks` assembly, a step that is performed after the
`Xamarin.Android.Build.Tasks` project build completes. The step takes the
project's output assembly and several other dependencies and merges them into
one, replacing the original output assembly. For the majority of time it works
flawlessly, however the scenario described below causes a Mono runtime
crash (similar to this one mono/mono#9613, although
not identical).

The crash causes aren't yet know in every detail, but the high level overview of
the issue is as follows. Mono runtime uses the `mmap(2)` system call on Unix to
map the on-disk image of the assembly into memory. The mmapped area is used
whenever the same assembly is loaded (e.g. via `Assembly.LoadFrom`) into the
application to save time and memory. The memory is mapped as private which means
that anything written to the mapped area by the Mono process is effectively
discarded, that is not reflected in the file on disk. The protection, however,
doesn't work in the other direction - when an external process (or even the same
Mono process) writes to the file that was mmapped. Unfortunately, the OS kernel
behavior in such instance is left undefined by the POSIX standard - the kernel
can choose to reflect the on-disk change in the mapping or ignore it. On macOS
the write is ignored, on Linux, however, the write leads either to the SIGBUS
signal being sent to the process or corruption to the mmapped memory
area (details of how this happens are, as of yet, unknown - it's just a theory
at this point). The problem occurs in our case when the `ILRepacker` task
overwrites the `Xamarin.Android.Build.Tasks.dll` assembly with its
merged/repackaged form and that, somehow, corrupts Mono runtime's memory mapping
of that assembly, eventually leading to a segfault:

  #0  0x00007f974fd1b23a in __waitpid (pid=pid@entry=120561, stat_loc=stat_loc@entry=0x7f9712162b9c, options=options@entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:30
  #1  0x000055b471f36c96 in dump_native_stacktrace (ctx=0x7f97121637c0, signal=0x55b472147cd3 "SIGSEGV") at mini-posix.c:719
  #2  0x000055b471f36df2 in mono_dump_native_crash_info (signal=signal@entry=0x55b472147cd3 "SIGSEGV", ctx=ctx@entry=0x7f97121637c0, info=info@entry=0x7f97121638f0) at mini-posix.c:742
  #3  0x000055b471ecc620 in mono_handle_native_crash (signal=signal@entry=0x55b472147cd3 "SIGSEGV", ctx=ctx@entry=0x7f97121637c0, info=info@entry=0x7f97121638f0) at mini-exceptions.c:2938
  dotnet#4  0x000055b471e4c82c in mono_sigsegv_signal_handler (_dummy=7, _info=0x7f97121638f0, context=0x7f97121637c0) at mini-runtime.c:3441
  dotnet#5  <signal handler called>
  dotnet#6  __strcasecmp_l_avx () at ../sysdeps/x86_64/multiarch/strcmp-sse42.S:199
  dotnet#7  0x000055b471fb2105 in mono_assembly_names_equal_flags (l=l@entry=0x7f96e0004370, r=r@entry=0x7f97307edb60, flags=flags@entry=MONO_ANAME_EQ_IGNORE_CASE) at assembly.c:663
  dotnet#8  0x000055b471fa7baf in mono_domain_assembly_search (aname=0x7f96e0004370, user_data=0x0) at appdomain.c:2242
  dotnet#9  0x000055b471fb10f7 in mono_assembly_invoke_search_hook_internal (aname=aname@entry=0x7f96e0004370, requesting=requesting@entry=0x0, refonly=0, postload=postload@entry=0) at assembly.c:1755
  dotnet#10 0x000055b471fb4526 in mono_assembly_load_from_predicate (image=image@entry=0x7f96e001aae0, fname=fname@entry=0x7f96e000bc50 "/home/grendel/vc/xamarin/monodroid/monodroid/external/xamarin-android/src/Xamarin.Android.Build.Tasks/../../packages/ILRepack.Lib.MSBuild.Task.2.0.15.4/build/ILRepack.Lib.MSBuild.Task.dll", asmctx=asmctx@entry=MONO_ASMCTX_LOADFROM, predicate=predicate@entry=0x0, user_data=user_data@entry=0x0, status=status@entry=0x7f9712163fd4) at assembly.c:2638
  dotnet#11 0x000055b471fb635c in mono_assembly_open_predicate (filename=<optimized out>, filename@entry=0x7f96e000ae40 "/home/grendel/vc/xamarin/monodroid/monodroid/external/xamarin-android/src/Xamarin.Android.Build.Tasks/../../packages/ILRepack.Lib.MSBuild.Task.2.0.15.4/build/ILRepack.Lib.MSBuild.Task.dll", asmctx=MONO_ASMCTX_LOADFROM, predicate=predicate@entry=0x0, user_data=user_data@entry=0x0, status=status@entry=0x7f9712163fd4) at assembly.c:2206
  dotnet#12 0x000055b471fabd42 in ves_icall_System_Reflection_Assembly_LoadFrom (fname=..., refOnly=<optimized out>, error=0x7f9712164050) at appdomain.c:2272
  dotnet#13 0x00000000412f4007 in ?? ()
  dotnet#14 0x00007f97440e1918 in ?? ()
  dotnet#15 0x00007f9749bd1800 in ?? ()
  dotnet#16 0x00000000e36e75af in ?? ()
  dotnet#17 0x00007f974434fda8 in ?? ()
  dotnet#18 0x00007f9749bd18e0 in ?? ()
  dotnet#19 0x00007f96e0002820 in ?? ()
  dotnet#20 0x00007f9712164160 in ?? ()
  dotnet#21 0x00007f9712164010 in ?? ()
  dotnet#22 0x0000000000000000 in ?? ()

The accompanying managed stacktrace looks as follows:

  Stacktrace:

  at <unknown> <0xffffffff>
  at (wrapper managed-to-native) System.Reflection.Assembly.LoadFrom (string,bool) [0x0001b] in <79002cfb0e6e431d8465d6dcea08995e>:0
  at System.Reflection.Assembly.LoadFrom (string) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/corlib/System.Reflection/Assembly.cs:539
  at System.Reflection.Assembly.UnsafeLoadFrom (string) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/corlib/System.Reflection/Assembly.cs:571
  at Microsoft.Build.Shared.TypeLoader.LoadAssembly (Microsoft.Build.Shared.AssemblyLoadInfo) [0x0001e] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at Microsoft.Build.Shared.TypeLoader/AssemblyInfoToLoadedTypes.ScanAssemblyForPublicTypes () [0x00007] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at Microsoft.Build.Shared.TypeLoader/AssemblyInfoToLoadedTypes/<>c__DisplayClass8_0.<GetLoadedTypeByTypeName>b__0 (string) [0x000b4] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Collections.Concurrent.ConcurrentDictionary`2<TKey_REF, TValue_REF>.GetOrAdd (TKey_REF,System.Func`2<TKey_REF, TValue_REF>) [0x00034] in <79002cfb0e6e431d8465d6dcea08995e>:0
  at Microsoft.Build.Shared.TypeLoader/AssemblyInfoToLoadedTypes.GetLoadedTypeByTypeName (string) [0x0003c] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at Microsoft.Build.Shared.TypeLoader.GetLoadedType (System.Collections.Concurrent.ConcurrentDictionary`2<System.Func`3<System.Type, object, bool>, System.Collections.Concurrent.ConcurrentDictionary`2<Microsoft.Build.Shared.AssemblyLoadInfo, Microsoft.Build.Shared.TypeLoader/AssemblyInfoToLoadedTypes>>,string,Microsoft.Build.Shared.AssemblyLoadInfo) [0x00042] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at Microsoft.Build.Shared.TypeLoader.Load (string,Microsoft.Build.Shared.AssemblyLoadInfo) [0x00008] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at Microsoft.Build.BackEnd.AssemblyTaskFactory.InitializeFactory (Microsoft.Build.Shared.AssemblyLoadInfo,string,System.Collections.Generic.IDictionary`2<string, Microsoft.Build.Framework.TaskPropertyInfo>,string,System.Collections.Generic.IDictionary`2<string, string>,bool,Microsoft.Build.BackEnd.Logging.TargetLoggingContext,Microsoft.Build.Construction.ElementLocation,string) [0x00058] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at Microsoft.Build.Execution.TaskRegistry/RegisteredTaskRecord.GetTaskFactory (Microsoft.Build.BackEnd.Logging.TargetLoggingContext,Microsoft.Build.Construction.ElementLocation,string) [0x000b8] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at Microsoft.Build.Execution.TaskRegistry/RegisteredTaskRecord.CanTaskBeCreatedByFactory (string,string,System.Collections.Generic.IDictionary`2<string, string>,Microsoft.Build.BackEnd.Logging.TargetLoggingContext,Microsoft.Build.Construction.ElementLocation) [0x0003b] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at Microsoft.Build.Execution.TaskRegistry.GetMatchingRegistration (string,System.Collections.Generic.List`1<Microsoft.Build.Execution.TaskRegistry/RegisteredTaskRecord>,string,System.Collections.Generic.IDictionary`2<string, string>,Microsoft.Build.BackEnd.Logging.TargetLoggingContext,Microsoft.Build.Construction.ElementLocation) [0x0001a] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at Microsoft.Build.Execution.TaskRegistry.GetTaskRegistrationRecord (string,string,System.Collections.Generic.IDictionary`2<string, string>,bool,Microsoft.Build.BackEnd.Logging.TargetLoggingContext,Microsoft.Build.Construction.ElementLocation,bool&) [0x00169] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at Microsoft.Build.Execution.TaskRegistry.GetRegisteredTask (string,string,System.Collections.Generic.IDictionary`2<string, string>,bool,Microsoft.Build.BackEnd.Logging.TargetLoggingContext,Microsoft.Build.Construction.ElementLocation) [0x00010] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at Microsoft.Build.BackEnd.TaskExecutionHost.FindTaskInRegistry (System.Collections.Generic.IDictionary`2<string, string>) [0x00038] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.FindTask (System.Collections.Generic.IDictionary`2<string, string>) [0x0000b] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at Microsoft.Build.BackEnd.TaskBuilder/<ExecuteBucket>d__19.MoveNext () [0x0011e] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<Microsoft.Build.BackEnd.WorkUnitResult>.Start<Microsoft.Build.BackEnd.TaskBuilder/<ExecuteBucket>d__19> (Microsoft.Build.BackEnd.TaskBuilder/<ExecuteBucket>d__19&) [0x0002c] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:471
  at Microsoft.Build.BackEnd.TaskBuilder.ExecuteBucket (Microsoft.Build.BackEnd.TaskHost,Microsoft.Build.BackEnd.ItemBucket,Microsoft.Build.BackEnd.TaskExecutionMode,System.Collections.Generic.Dictionary`2<string, string>) [0x00048] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at Microsoft.Build.BackEnd.TaskBuilder/<ExecuteTask>d__18.MoveNext () [0x0016a] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<Microsoft.Build.BackEnd.WorkUnitResult>.Start<Microsoft.Build.BackEnd.TaskBuilder/<ExecuteTask>d__18> (Microsoft.Build.BackEnd.TaskBuilder/<ExecuteTask>d__18&) [0x0002c] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:471
  at Microsoft.Build.BackEnd.TaskBuilder.ExecuteTask (Microsoft.Build.BackEnd.TaskExecutionMode,Microsoft.Build.BackEnd.Lookup) [0x00037] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at Microsoft.Build.BackEnd.TaskBuilder/<ExecuteTask>d__13.MoveNext () [0x00193] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<Microsoft.Build.BackEnd.WorkUnitResult>.Start<Microsoft.Build.BackEnd.TaskBuilder/<ExecuteTask>d__13> (Microsoft.Build.BackEnd.TaskBuilder/<ExecuteTask>d__13&) [0x0002c] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:471
  at Microsoft.Build.BackEnd.TaskBuilder.ExecuteTask (Microsoft.Build.BackEnd.Logging.TargetLoggingContext,Microsoft.Build.BackEnd.BuildRequestEntry,Microsoft.Build.BackEnd.ITargetBuilderCallback,Microsoft.Build.Execution.ProjectTargetInstanceChild,Microsoft.Build.BackEnd.TaskExecutionMode,Microsoft.Build.BackEnd.Lookup,Microsoft.Build.BackEnd.Lookup,System.Threading.CancellationToken) [0x0006c] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at Microsoft.Build.BackEnd.TargetEntry/<ProcessBucket>d__52.MoveNext () [0x00091] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<Microsoft.Build.BackEnd.WorkUnitResult>.Start<Microsoft.Build.BackEnd.TargetEntry/<ProcessBucket>d__52> (Microsoft.Build.BackEnd.TargetEntry/<ProcessBucket>d__52&) [0x0002c] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:471
  at Microsoft.Build.BackEnd.TargetEntry.ProcessBucket (Microsoft.Build.BackEnd.ITaskBuilder,Microsoft.Build.BackEnd.Logging.TargetLoggingContext,Microsoft.Build.BackEnd.TaskExecutionMode,Microsoft.Build.BackEnd.Lookup,Microsoft.Build.BackEnd.Lookup) [0x00051] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at Microsoft.Build.BackEnd.TargetEntry/<ExecuteTarget>d__45.MoveNext () [0x002bb] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start<Microsoft.Build.BackEnd.TargetEntry/<ExecuteTarget>d__45> (Microsoft.Build.BackEnd.TargetEntry/<ExecuteTarget>d__45&) [0x0002c] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:316
  at Microsoft.Build.BackEnd.TargetEntry.ExecuteTarget (Microsoft.Build.BackEnd.ITaskBuilder,Microsoft.Build.BackEnd.BuildRequestEntry,Microsoft.Build.BackEnd.Logging.ProjectLoggingContext,System.Threading.CancellationToken) [0x00048] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at Microsoft.Build.BackEnd.TargetBuilder/<ProcessTargetStack>d__21.MoveNext () [0x003a5] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.InvokeMoveNext (object) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1094
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:961
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:908
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.Run () [0x00024] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1075
  at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction (System.Action,bool,System.Threading.Tasks.Task&) [0x0001a] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/TaskContinuation.cs:680
  at System.Threading.Tasks.Task.FinishContinuations () [0x00052] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:3198
  at System.Threading.Tasks.Task.FinishStageThree () [0x0003c] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:2247
  at System.Threading.Tasks.Task`1<System.Threading.Tasks.VoidTaskResult>.TrySetResult (System.Threading.Tasks.VoidTaskResult) [0x0004f] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Future.cs:433
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<System.Threading.Tasks.VoidTaskResult>.SetResult (System.Threading.Tasks.VoidTaskResult) [0x0003d] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:608
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<System.Threading.Tasks.VoidTaskResult>.SetResult (System.Threading.Tasks.Task`1<System.Threading.Tasks.VoidTaskResult>) [0x00010] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:636
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult () [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:378
  at Microsoft.Build.BackEnd.TargetEntry/<ExecuteTarget>d__45.MoveNext () [0x00720] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.InvokeMoveNext (object) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1094
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:961
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:908
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.Run () [0x00024] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1075
  at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction (System.Action,bool,System.Threading.Tasks.Task&) [0x0001a] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/TaskContinuation.cs:680
  at System.Threading.Tasks.Task.FinishContinuations () [0x00052] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:3198
  at System.Threading.Tasks.Task.FinishStageThree () [0x0003c] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:2247
  at System.Threading.Tasks.Task`1<TResult_REF>.TrySetResult (TResult_REF) [0x0004f] in <79002cfb0e6e431d8465d6dcea08995e>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<TResult_REF>.SetResult (TResult_REF) [0x0003d] in <79002cfb0e6e431d8465d6dcea08995e>:0
  at Microsoft.Build.BackEnd.TargetEntry/<ProcessBucket>d__52.MoveNext () [0x001d5] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.InvokeMoveNext (object) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1094
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:961
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:908
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.Run () [0x00024] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1075
  at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction (System.Action,bool,System.Threading.Tasks.Task&) [0x0001a] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/TaskContinuation.cs:680
  at System.Threading.Tasks.Task.FinishContinuations () [0x00052] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:3198
  at System.Threading.Tasks.Task.FinishStageThree () [0x0003c] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:2247
  at System.Threading.Tasks.Task`1<TResult_REF>.TrySetResult (TResult_REF) [0x0004f] in <79002cfb0e6e431d8465d6dcea08995e>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<TResult_REF>.SetResult (TResult_REF) [0x0003d] in <79002cfb0e6e431d8465d6dcea08995e>:0
  at Microsoft.Build.BackEnd.TaskBuilder/<ExecuteTask>d__13.MoveNext () [0x0021e] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.InvokeMoveNext (object) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1094
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:961
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:908
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.Run () [0x00024] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1075
  at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction (System.Action,bool,System.Threading.Tasks.Task&) [0x0001a] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/TaskContinuation.cs:680
  at System.Threading.Tasks.Task.FinishContinuations () [0x00052] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:3198
  at System.Threading.Tasks.Task.FinishStageThree () [0x0003c] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:2247
  at System.Threading.Tasks.Task`1<TResult_REF>.TrySetResult (TResult_REF) [0x0004f] in <79002cfb0e6e431d8465d6dcea08995e>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<TResult_REF>.SetResult (TResult_REF) [0x0003d] in <79002cfb0e6e431d8465d6dcea08995e>:0
  at Microsoft.Build.BackEnd.TaskBuilder/<ExecuteTask>d__18.MoveNext () [0x002be] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.InvokeMoveNext (object) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1094
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:961
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:908
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.Run () [0x00024] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1075
  at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction (System.Action,bool,System.Threading.Tasks.Task&) [0x0001a] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/TaskContinuation.cs:680
  at System.Threading.Tasks.Task.FinishContinuations () [0x00052] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:3198
  at System.Threading.Tasks.Task.FinishStageThree () [0x0003c] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:2247
  at System.Threading.Tasks.Task`1<TResult_REF>.TrySetResult (TResult_REF) [0x0004f] in <79002cfb0e6e431d8465d6dcea08995e>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<TResult_REF>.SetResult (TResult_REF) [0x0003d] in <79002cfb0e6e431d8465d6dcea08995e>:0
  at Microsoft.Build.BackEnd.TaskBuilder/<ExecuteBucket>d__19.MoveNext () [0x003e5] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.InvokeMoveNext (object) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1094
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:961
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:908
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.Run () [0x00024] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1075
  at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction (System.Action,bool,System.Threading.Tasks.Task&) [0x0001a] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/TaskContinuation.cs:680
  at System.Threading.Tasks.Task.FinishContinuations () [0x00052] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:3198
  at System.Threading.Tasks.Task.FinishStageThree () [0x0003c] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:2247
  at System.Threading.Tasks.Task`1<TResult_REF>.TrySetResult (TResult_REF) [0x0004f] in <79002cfb0e6e431d8465d6dcea08995e>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<TResult_REF>.SetResult (TResult_REF) [0x0003d] in <79002cfb0e6e431d8465d6dcea08995e>:0
  at Microsoft.Build.BackEnd.TaskBuilder/<InitializeAndExecuteTask>d__24.MoveNext () [0x0012d] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.InvokeMoveNext (object) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1094
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:961
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:908
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.Run () [0x00024] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1075
  at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction (System.Action,bool,System.Threading.Tasks.Task&) [0x0001a] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/TaskContinuation.cs:680
  at System.Threading.Tasks.Task.FinishContinuations () [0x00052] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:3198
  at System.Threading.Tasks.Task.FinishStageThree () [0x0003c] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:2247
  at System.Threading.Tasks.Task`1<TResult_REF>.TrySetResult (TResult_REF) [0x0004f] in <79002cfb0e6e431d8465d6dcea08995e>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<TResult_REF>.SetResult (TResult_REF) [0x0003d] in <79002cfb0e6e431d8465d6dcea08995e>:0
  at Microsoft.Build.BackEnd.TaskBuilder/<ExecuteInstantiatedTask>d__26.MoveNext () [0x0065e] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.InvokeMoveNext (object) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1094
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:961
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:908
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.Run () [0x00024] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1075
  at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction (System.Action,bool,System.Threading.Tasks.Task&) [0x0001a] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/TaskContinuation.cs:680
  at System.Threading.Tasks.Task.FinishContinuations () [0x00052] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:3198
  at System.Threading.Tasks.Task.FinishStageThree () [0x0003c] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:2247
  at System.Threading.Tasks.Task`1<bool>.TrySetResult (bool) [0x0004f] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Future.cs:433
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<bool>.SetResult (bool) [0x0003d] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:608
  at Microsoft.Build.BackEnd.MSBuild/<ExecuteInternal>d__76.MoveNext () [0x004dd] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.InvokeMoveNext (object) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1094
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:961
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:908
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.Run () [0x00024] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1075
  at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction (System.Action,bool,System.Threading.Tasks.Task&) [0x0001a] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/TaskContinuation.cs:680
  at System.Threading.Tasks.Task.FinishContinuations () [0x00052] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:3198
  at System.Threading.Tasks.Task.FinishStageThree () [0x0003c] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:2247
  at System.Threading.Tasks.Task`1<bool>.TrySetResult (bool) [0x0004f] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Future.cs:433
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<bool>.SetResult (bool) [0x0003d] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:608
  at Microsoft.Build.BackEnd.MSBuild/<BuildProjectsInParallel>d__77.MoveNext () [0x0014a] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.InvokeMoveNext (object) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1094
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:961
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:908
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.Run () [0x00024] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1075
  at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction (System.Action,bool,System.Threading.Tasks.Task&) [0x0001a] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/TaskContinuation.cs:680
  at System.Threading.Tasks.Task.FinishContinuations () [0x00052] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:3198
  at System.Threading.Tasks.Task.FinishStageThree () [0x0003c] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:2247
  at System.Threading.Tasks.Task`1<bool>.TrySetResult (bool) [0x0004f] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Future.cs:433
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<bool>.SetResult (bool) [0x0003d] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:608
  at Microsoft.Build.BackEnd.MSBuild/<ExecuteTargets>d__80.MoveNext () [0x00713] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.InvokeMoveNext (object) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1094
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:961
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:908
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.Run () [0x00024] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1075
  at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction (System.Action,bool,System.Threading.Tasks.Task&) [0x0001a] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/TaskContinuation.cs:680
  at System.Threading.Tasks.Task.FinishContinuations () [0x00052] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:3198
  at System.Threading.Tasks.Task.FinishStageThree () [0x0003c] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:2247
  at System.Threading.Tasks.Task`1<Microsoft.Build.Framework.BuildEngineResult>.TrySetResult (Microsoft.Build.Framework.BuildEngineResult) [0x0004f] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Future.cs:433
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<Microsoft.Build.Framework.BuildEngineResult>.SetResult (Microsoft.Build.Framework.BuildEngineResult) [0x0003d] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:608
  at Microsoft.Build.BackEnd.TaskHost/<InternalBuildProjects>d__49.MoveNext () [0x0025c] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.InvokeMoveNext (object) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1094
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:961
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:908
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.Run () [0x00024] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1075
  at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction (System.Action,bool,System.Threading.Tasks.Task&) [0x0001a] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/TaskContinuation.cs:680
  at System.Threading.Tasks.Task.FinishContinuations () [0x00052] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:3198
  at System.Threading.Tasks.Task.FinishStageThree () [0x0003c] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:2247
  at System.Threading.Tasks.Task`1<Microsoft.Build.Framework.BuildEngineResult>.TrySetResult (Microsoft.Build.Framework.BuildEngineResult) [0x0004f] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Future.cs:433
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<Microsoft.Build.Framework.BuildEngineResult>.SetResult (Microsoft.Build.Framework.BuildEngineResult) [0x0003d] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:608
  at Microsoft.Build.BackEnd.TaskHost/<BuildProjectFilesInParallelAsync>d__53.MoveNext () [0x004fb] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.InvokeMoveNext (object) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1094
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:961
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:908
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.Run () [0x00024] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1075
  at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction (System.Action,bool,System.Threading.Tasks.Task&) [0x0001a] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/TaskContinuation.cs:680
  at System.Threading.Tasks.Task.FinishContinuations () [0x00052] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:3198
  at System.Threading.Tasks.Task.FinishStageThree () [0x0003c] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:2247
  at System.Threading.Tasks.Task`1<TResult_REF>.TrySetResult (TResult_REF) [0x0004f] in <79002cfb0e6e431d8465d6dcea08995e>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<TResult_REF>.SetResult (TResult_REF) [0x0003d] in <79002cfb0e6e431d8465d6dcea08995e>:0
  at Microsoft.Build.BackEnd.RequestBuilder/<BuildProjects>d__33.MoveNext () [0x00263] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.InvokeMoveNext (object) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1094
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:961
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:908
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.Run () [0x00024] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1075
  at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction (System.Action,bool,System.Threading.Tasks.Task&) [0x0001a] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/TaskContinuation.cs:680
  at System.Threading.Tasks.Task.FinishContinuations () [0x00052] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:3198
  at System.Threading.Tasks.Task.FinishStageThree () [0x0003c] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:2247
  at System.Threading.Tasks.Task`1<TResult_REF>.TrySetResult (TResult_REF) [0x0004f] in <79002cfb0e6e431d8465d6dcea08995e>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<TResult_REF>.SetResult (TResult_REF) [0x0003d] in <79002cfb0e6e431d8465d6dcea08995e>:0
  at Microsoft.Build.BackEnd.RequestBuilder/<StartNewBuildRequests>d__51.MoveNext () [0x0020e] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.InvokeMoveNext (object) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1094
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:961
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:908
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.Run () [0x00024] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1075
  at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction (System.Action,bool,System.Threading.Tasks.Task&) [0x0001a] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/TaskContinuation.cs:680
  at System.Threading.Tasks.Task.FinishContinuations () [0x00052] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:3198
  at System.Threading.Tasks.Task.FinishStageThree () [0x0003c] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:2247
  at System.Threading.Tasks.Task`1<int>.TrySetResult (int) [0x0004f] in /home/grendel/vc/mono/mono/external/corert/src/System.Private.CoreLib/src/System/Threading/Tasks/Future.cs:433
  at System.Threading.Tasks.TaskCompletionSource`1<int>.TrySetResult (int) [0x00000] in /home/grendel/vc/mono/mono/external/corefx/src/Common/src/CoreLib/System/Threading/Tasks/TaskCompletionSource.cs:274
  at Microsoft.Build.Shared.AwaitExtensions/<>c__DisplayClass7_2.<ToTask>b__0 (object,bool) [0x00038] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
  at System.Threading.RegisteredWaitHandle.DoCallBack (object) [0x00008] in /home/grendel/vc/mono/mono/mcs/class/corlib/System.Threading/RegisteredWaitHandle.cs:103
  at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context (object) [0x0000d] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/threadpool.cs:1308
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:961
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/executioncontext.cs:908
  at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00021] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/threadpool.cs:1285
  at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00074] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/threadpool.cs:858
  at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in /home/grendel/vc/mono/mono/mcs/class/referencesource/mscorlib/system/threading/threadpool.cs:1213
  at (wrapper runtime-invoke) <Module>.runtime_invoke_bool (object,intptr,intptr,intptr) [0x0001f] in <79002cfb0e6e431d8465d6dcea08995e>:0

The crash occurs in frame 7, because the `r` parameter (an instance of the
`MonoAssembly` structure) contains pointers that used to point to valid places
in the `Xamarin.Android.Build.Tasks` assembbly's mmaped area, but now point to
garbage data. One of those corrupted pointers is the ASCII assembly name - which
is used by the function in frame 7.

The situation can be detected by the runtime by using advisory locks and
reporting the attempt to overwrite the mmapped area, however a fix would require
creating a copy of all the assembly's in-memory data before the write is allowed
and that might be too expensive. None of those measures are currently
implemented by Mono (and it isn't sure if any of them will ever be implemented).

The crash this commit fixes occurs in a very specific scenario - when building
the `OpenTK.csproj` project *directly* (that is passing it as parameter to
`msbuild`), which causes a the `Xamarin.Android.Build.Tasks` assembly to be
loaded for use in the `<UsingTask/>` msbuild statement, but at the same time
`OpenTK.csproj` references the `Xamarin.Android.Build.Tasks` *project* which
causes the ILRepacker task to run unconditionally, attempting to repack the
assemblies again and leading to the crash described above.

The fix, courtesy of @jonpryor, is to make the ILRepacker target not run every
time but only whenver the assembly has to be re-packed because it has just been
rebuilt.
jonpryor pushed a commit that referenced this pull request Jul 19, 2018
Xamarin.Android uses the [ILRepack task][0] to repack/merge the
`Xamarin.Android.Build.Tasks.dll` assembly (610ade7), a step that is
performed after the `Xamarin.Android.Build.Tasks.csproj` project's
`Build` target completes.  The step takes the project's output
assembly -- `Xamarin.Android.Build.Tasks.dll` -- and several other
dependencies, then merges them into one, *replacing* the original
output assembly.

The majority of time it works flawlessly, however when building the
`monodroid` repo we observe a Mono runtime crash, similar-but-not-
identical to [mono issue 9613][m9613].  Not all details are
understood, but the high level overview of the issue is as follows:
Mono runtime uses the **mmap**(2) system call on Unix to map the
on-disk image of the assembly into memory.  The `mmapp`ed area is
used whenever the same assembly is loaded (e.g.
`Assembly.LoadFrom()`) into the application to save time and memory.
The memory is mapped as private which means that anything written to
the mapped area by the Mono process is effectively discarded, that is
not reflected in the file on disk.  The protection, however, doesn't
work in the other direction: when an external process (or even the
same Mono process!) writes to the file that was `mmapp`ed.
Unfortunately, the OS kernel behavior in such instance is left
undefined by the POSIX standard: the kernel can choose to reflect the
on-disk change in the mapping or ignore it.  On macOS the write is
ignored; on Linux, the write leads either to the `SIGBUS` signal
being sent to the process or corruption to the `mmap`ped memory area
(details of how this happens are, as of yet, unknown; it's just a
theory at this point).  The problem occurs in our case when the
`<ILRepacker/>` task overwrites the `Xamarin.Android.Build.Tasks.dll`
assembly with its merged/repackaged form and that, somehow, corrupts
Mono runtime's memory mapping of that assembly, eventually crashing:

        ## native crash
        #0  0x00007f974fd1b23a in __waitpid (pid=pid@entry=120561, stat_loc=stat_loc@entry=0x7f9712162b9c, options=options@entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:30
        #1  0x000055b471f36c96 in dump_native_stacktrace (ctx=0x7f97121637c0, signal=0x55b472147cd3 "SIGSEGV") at mini-posix.c:719
        #2  0x000055b471f36df2 in mono_dump_native_crash_info (signal=signal@entry=0x55b472147cd3 "SIGSEGV", ctx=ctx@entry=0x7f97121637c0, info=info@entry=0x7f97121638f0) at mini-posix.c:742
        #3  0x000055b471ecc620 in mono_handle_native_crash (signal=signal@entry=0x55b472147cd3 "SIGSEGV", ctx=ctx@entry=0x7f97121637c0, info=info@entry=0x7f97121638f0) at mini-exceptions.c:2938
        #4  0x000055b471e4c82c in mono_sigsegv_signal_handler (_dummy=7, _info=0x7f97121638f0, context=0x7f97121637c0) at mini-runtime.c:3441
        #5  <signal handler called>
        #6  __strcasecmp_l_avx () at ../sysdeps/x86_64/multiarch/strcmp-sse42.S:199
        #7  0x000055b471fb2105 in mono_assembly_names_equal_flags (l=l@entry=0x7f96e0004370, r=r@entry=0x7f97307edb60, flags=flags@entry=MONO_ANAME_EQ_IGNORE_CASE) at assembly.c:663
        #8  0x000055b471fa7baf in mono_domain_assembly_search (aname=0x7f96e0004370, user_data=0x0) at appdomain.c:2242
        #9  0x000055b471fb10f7 in mono_assembly_invoke_search_hook_internal (aname=aname@entry=0x7f96e0004370, requesting=requesting@entry=0x0, refonly=0, postload=postload@entry=0) at assembly.c:1755
        #10 0x000055b471fb4526 in mono_assembly_load_from_predicate (image=image@entry=0x7f96e001aae0, fname=fname@entry=0x7f96e000bc50 "/home/grendel/vc/xamarin/monodroid/monodroid/external/xamarin-android/src/Xamarin.Android.Build.Tasks/../../packages/ILRepack.Lib.MSBuild.Task.2.0.15.4/build/ILRepack.Lib.MSBuild.Task.dll", asmctx=asmctx@entry=MONO_ASMCTX_LOADFROM, predicate=predicate@entry=0x0, user_data=user_data@entry=0x0, status=status@entry=0x7f9712163fd4) at assembly.c:2638
        #11 0x000055b471fb635c in mono_assembly_open_predicate (filename=<optimized out>, filename@entry=0x7f96e000ae40 "/home/grendel/vc/xamarin/monodroid/monodroid/external/xamarin-android/src/Xamarin.Android.Build.Tasks/../../packages/ILRepack.Lib.MSBuild.Task.2.0.15.4/build/ILRepack.Lib.MSBuild.Task.dll", asmctx=MONO_ASMCTX_LOADFROM, predicate=predicate@entry=0x0, user_data=user_data@entry=0x0, status=status@entry=0x7f9712163fd4) at assembly.c:2206
        #12 0x000055b471fabd42 in ves_icall_System_Reflection_Assembly_LoadFrom (fname=..., refOnly=<optimized out>, error=0x7f9712164050) at appdomain.c:2272
        ...

        ## managed stacktrace
        at <unknown> <0xffffffff>
        at (wrapper managed-to-native) System.Reflection.Assembly.LoadFrom (string,bool) [0x0001b] in <79002cfb0e6e431d8465d6dcea08995e>:0
        at System.Reflection.Assembly.LoadFrom (string) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/corlib/System.Reflection/Assembly.cs:539
        at System.Reflection.Assembly.UnsafeLoadFrom (string) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/corlib/System.Reflection/Assembly.cs:571
        at Microsoft.Build.Shared.TypeLoader.LoadAssembly (Microsoft.Build.Shared.AssemblyLoadInfo) [0x0001e] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
        ...

The crash occurs in frame 7, because the `r` parameter (an instance
of the `MonoAssembly` structure) contains pointers that used to point
to valid places in the `Xamarin.Android.Build.Tasks.dll`s `mmap`ed
area, but now point to garbage data.  One of those corrupted pointers
is the ASCII assembly name - which is used by the function in frame 7.

The crash this commit fixes occurs in a very specific scenario: when
building the `OpenTK.csproj` project *directly*
(e.g. `msbuild OpenTK.csproj`), which causes the
`Xamarin.Android.Build.Tasks.dll` assembly to be loaded for use in
the `<UsingTask/>` MSBuild statement, but at the same time 
`OpenTK.csproj` has a `@(ProjectReference)` to
`Xamarin.Android.Build.Tasks.csproj`, which caused the
`<ILRepacker/>` task to run unconditionally, attempting to repack the
assemblies again and leading to the crash described above.

The fix, courtesy of @jonpryor, is to make the `ILRepacker` target
not run every time but only whenever the assembly has to be re-packed
because it has just been rebuilt.

This also improves rebuild times.

[0]: https://www.nuget.org/packages/ILRepack.Lib.MSBuild.Task
[m9613]: mono/mono#9613
jonpryor pushed a commit that referenced this pull request Aug 3, 2018
Xamarin.Android uses the [ILRepack task][0] to repack/merge the
`Xamarin.Android.Build.Tasks.dll` assembly (610ade7), a step that is
performed after the `Xamarin.Android.Build.Tasks.csproj` project's
`Build` target completes.  The step takes the project's output
assembly -- `Xamarin.Android.Build.Tasks.dll` -- and several other
dependencies, then merges them into one, *replacing* the original
output assembly.

The majority of time it works flawlessly, however when building the
`monodroid` repo we observe a Mono runtime crash, similar-but-not-
identical to [mono issue 9613][m9613].  Not all details are
understood, but the high level overview of the issue is as follows:
Mono runtime uses the **mmap**(2) system call on Unix to map the
on-disk image of the assembly into memory.  The `mmapp`ed area is
used whenever the same assembly is loaded (e.g.
`Assembly.LoadFrom()`) into the application to save time and memory.
The memory is mapped as private which means that anything written to
the mapped area by the Mono process is effectively discarded, that is
not reflected in the file on disk.  The protection, however, doesn't
work in the other direction: when an external process (or even the
same Mono process!) writes to the file that was `mmapp`ed.
Unfortunately, the OS kernel behavior in such instance is left
undefined by the POSIX standard: the kernel can choose to reflect the
on-disk change in the mapping or ignore it.  On macOS the write is
ignored; on Linux, the write leads either to the `SIGBUS` signal
being sent to the process or corruption to the `mmap`ped memory area
(details of how this happens are, as of yet, unknown; it's just a
theory at this point).  The problem occurs in our case when the
`<ILRepacker/>` task overwrites the `Xamarin.Android.Build.Tasks.dll`
assembly with its merged/repackaged form and that, somehow, corrupts
Mono runtime's memory mapping of that assembly, eventually crashing:

        ## native crash
        #0  0x00007f974fd1b23a in __waitpid (pid=pid@entry=120561, stat_loc=stat_loc@entry=0x7f9712162b9c, options=options@entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:30
        #1  0x000055b471f36c96 in dump_native_stacktrace (ctx=0x7f97121637c0, signal=0x55b472147cd3 "SIGSEGV") at mini-posix.c:719
        #2  0x000055b471f36df2 in mono_dump_native_crash_info (signal=signal@entry=0x55b472147cd3 "SIGSEGV", ctx=ctx@entry=0x7f97121637c0, info=info@entry=0x7f97121638f0) at mini-posix.c:742
        #3  0x000055b471ecc620 in mono_handle_native_crash (signal=signal@entry=0x55b472147cd3 "SIGSEGV", ctx=ctx@entry=0x7f97121637c0, info=info@entry=0x7f97121638f0) at mini-exceptions.c:2938
        #4  0x000055b471e4c82c in mono_sigsegv_signal_handler (_dummy=7, _info=0x7f97121638f0, context=0x7f97121637c0) at mini-runtime.c:3441
        #5  <signal handler called>
        #6  __strcasecmp_l_avx () at ../sysdeps/x86_64/multiarch/strcmp-sse42.S:199
        #7  0x000055b471fb2105 in mono_assembly_names_equal_flags (l=l@entry=0x7f96e0004370, r=r@entry=0x7f97307edb60, flags=flags@entry=MONO_ANAME_EQ_IGNORE_CASE) at assembly.c:663
        #8  0x000055b471fa7baf in mono_domain_assembly_search (aname=0x7f96e0004370, user_data=0x0) at appdomain.c:2242
        #9  0x000055b471fb10f7 in mono_assembly_invoke_search_hook_internal (aname=aname@entry=0x7f96e0004370, requesting=requesting@entry=0x0, refonly=0, postload=postload@entry=0) at assembly.c:1755
        #10 0x000055b471fb4526 in mono_assembly_load_from_predicate (image=image@entry=0x7f96e001aae0, fname=fname@entry=0x7f96e000bc50 "/home/grendel/vc/xamarin/monodroid/monodroid/external/xamarin-android/src/Xamarin.Android.Build.Tasks/../../packages/ILRepack.Lib.MSBuild.Task.2.0.15.4/build/ILRepack.Lib.MSBuild.Task.dll", asmctx=asmctx@entry=MONO_ASMCTX_LOADFROM, predicate=predicate@entry=0x0, user_data=user_data@entry=0x0, status=status@entry=0x7f9712163fd4) at assembly.c:2638
        #11 0x000055b471fb635c in mono_assembly_open_predicate (filename=<optimized out>, filename@entry=0x7f96e000ae40 "/home/grendel/vc/xamarin/monodroid/monodroid/external/xamarin-android/src/Xamarin.Android.Build.Tasks/../../packages/ILRepack.Lib.MSBuild.Task.2.0.15.4/build/ILRepack.Lib.MSBuild.Task.dll", asmctx=MONO_ASMCTX_LOADFROM, predicate=predicate@entry=0x0, user_data=user_data@entry=0x0, status=status@entry=0x7f9712163fd4) at assembly.c:2206
        #12 0x000055b471fabd42 in ves_icall_System_Reflection_Assembly_LoadFrom (fname=..., refOnly=<optimized out>, error=0x7f9712164050) at appdomain.c:2272
        ...

        ## managed stacktrace
        at <unknown> <0xffffffff>
        at (wrapper managed-to-native) System.Reflection.Assembly.LoadFrom (string,bool) [0x0001b] in <79002cfb0e6e431d8465d6dcea08995e>:0
        at System.Reflection.Assembly.LoadFrom (string) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/corlib/System.Reflection/Assembly.cs:539
        at System.Reflection.Assembly.UnsafeLoadFrom (string) [0x00000] in /home/grendel/vc/mono/mono/mcs/class/corlib/System.Reflection/Assembly.cs:571
        at Microsoft.Build.Shared.TypeLoader.LoadAssembly (Microsoft.Build.Shared.AssemblyLoadInfo) [0x0001e] in <bdc5207a22bb42ae9fe3f3d07e82871e>:0
        ...

The crash occurs in frame 7, because the `r` parameter (an instance
of the `MonoAssembly` structure) contains pointers that used to point
to valid places in the `Xamarin.Android.Build.Tasks.dll`s `mmap`ed
area, but now point to garbage data.  One of those corrupted pointers
is the ASCII assembly name - which is used by the function in frame 7.

The crash this commit fixes occurs in a very specific scenario: when
building the `OpenTK.csproj` project *directly*
(e.g. `msbuild OpenTK.csproj`), which causes the
`Xamarin.Android.Build.Tasks.dll` assembly to be loaded for use in
the `<UsingTask/>` MSBuild statement, but at the same time 
`OpenTK.csproj` has a `@(ProjectReference)` to
`Xamarin.Android.Build.Tasks.csproj`, which caused the
`<ILRepacker/>` task to run unconditionally, attempting to repack the
assemblies again and leading to the crash described above.

The fix, courtesy of @jonpryor, is to make the `ILRepacker` target
not run every time but only whenever the assembly has to be re-packed
because it has just been rebuilt.

This also improves rebuild times.

[0]: https://www.nuget.org/packages/ILRepack.Lib.MSBuild.Task
[m9613]: mono/mono#9613
luhenry added a commit that referenced this pull request Aug 10, 2018
Commit list for mono/mono:

* mono/mono@f3a2216b65a backport #9800 to 2018-04
* mono/mono@07ac0897350 Bump msbuild to track mono-2018-04 (#9834)
* mono/mono@d31dbe843a5 Apply F# portable pdb debug fix for pinvokes & bump (#9798)
* mono/mono@a4ac6282675 [corlib] Disable comparer xunit tests because we are still running referencesource version on mobile
* mono/mono@4f10cd10272 [corlib] Disable broken corefx tests
* mono/mono@16538b28e36 [TermInfo] fix reading integer value for new file format
* mono/mono@e92217aad3c Bump bockbuild
* mono/mono@b25c7135046 [llvm] Avoid using the preserveall calling convention in another place on watchos. (#9579)
* mono/mono@ebc0c7c2156 Fix LogcatTextWriter_Log interpreting messages it logs, potentially writing random garbage and/or crashing (introduced by https://github.com/mono/mono/commit/984f6484666c2ee6fefec949c81fdff1189c9488) (Fixes https://github.com/xamarin/xamarin-android/issues/1951) (#9614)
* mono/mono@d851c21b1fc [runtime] Make sigterm dumper send file to merp (#9608)
* mono/mono@d4a680b045c [arm64] Make OP_CHECK_THIS read only a byte, to prevent unaligned access errors. (#9545)
* mono/mono@0d29bd39f11 Merge pull request #9484 from alexanderkyte/2018-04-merp_params
* mono/mono@2e6757dae96 [sdk] Do not fix android platform-tools version. Make it configurable. (#9509)
* mono/mono@6a7c7f68535 [runtime] Enable application to register path for MERP restart
* mono/mono@ba63aa3589c [runtime] Make merp eventType icall argument
* mono/mono@9d4d9a86686 [Coop] Convert Mono.Runtime to coop. (#8599)
* mono/mono@c95a4a2d2c5 [llvm] Avoid using the preserveall calling convention on watchos, xcode10 asserts on it.
* mono/mono@5f411d96967 Merge pull request #9445 from monojenkins/backport-pr-9440-to-2018-04
* mono/mono@c03434f8f42 Add another Darwin file system
* mono/mono@9d69811fd6d Bump bockbuild
* mono/mono@2389814c3ca [runtime] Fix the --enable-minimal=aot build. (#9393)
* mono/mono@5a3352aba2f [interp] fix scope issue regarding `klass` var (#9377)
* mono/mono@0a4c7bb91bf [mini] add workaround for AMD Ryzen Threadripper issue (#9357)
* mono/mono@33b8e6c418e [build] Skips RemoteExecuted bases tests on monodroid
* mono/mono@c060398eaed [2018-04]  [sdks] Only rebuild MXE when it doesn't exist, not when we just cloned the sources (#9365)
* mono/mono@095dbce56fe Merge pull request #9329 from monojenkins/backport-pr-9274-to-2018-04
* mono/mono@c2f12ea8648 Bump linker
* mono/mono@d0bb0ce89fa [System]: `HttpWebRequest` now throws `WebExceptionStatus.RequestCanceled` on abort. (#9212) (#9304)
* mono/mono@18080dc75a8 [merp] Change XML file output path
* mono/mono@872843aa92e [merp] Change and emit event type
* mono/mono@3645833a7a4 [runtime] Make mono-state dumper abandon stuck threads (#9260)
* mono/mono@5e8001a4ff6 [2018-04] [runtime] Package merp params in 3 ways needed (#9268)
* mono/mono@639ca72904d [interp] make interp-only mode work again on 2018-04, mixed mode changes broke them. we need to fix it properly on master
* mono/mono@d68cb85dc64 [2018-04] [interp] fullAOT mixed mode (#8838)
* mono/mono@6f5656ea86e [interp] add FULL_AOT flags to AOT image when `--aot=interp` is used
* mono/mono@33f6b1d2497 [aot-compiler] use mono_aot_mode_is_interp instead of directly using the flag
* mono/mono@8ae8c52383b [System]: Fix bug in `WebResponseStream.GetResponse()` that will make some people happy.  #9228. (#9244)
* mono/mono@c87ebef727a Bump msbuild to track mono-2018-04 (#9241)
* mono/mono@f22c8b706eb [loader] LoadFrom of problematic images should reprobe (correctly)
* mono/mono@9d43da2ebf4 [profiler] account for nullbyte in allocated buffer
* mono/mono@3737edb8819 [corlib] Allow DM with an extra param to have the first one bound to null. Fixes #9033.
* mono/mono@07c8f25fe53 [interp] check existence of InterpMethod before removing it from interp code hastable
* mono/mono@335e62c3a02 [packaging] Ignore Mac path in MSBuild .targets file during check
* mono/mono@36fe14548c4 [Linux,XA build] Fix building of Windows cross-compilers on Ubuntu Linux (#9173)
* mono/mono@6de3d54a245 [SDKS,Android] Install cmake when provisioning Android SDK (#9139)
* mono/mono@cb54c26f6c8 Bump bockbuild to fix environment variables expansion bug (#9178)
* mono/mono@569bd3bc52f Revert "[loader] LoadFrom of problematic images should reprobe" (#9112)
* mono/mono@1f44e26ab4f Remove ServiceControllerTest.cs. Mitigates https://github.com/mono/mono/issues/9002.
* mono/mono@7b9563bc1c8 [profiler] Don't raise events until the profiler transitions to the ready state. Fixes #8866.
* mono/mono@615252ca70b update to Android P final API. (#9077)
* mono/mono@47fe82d812c Merge pull request #9018 from monojenkins/backport-pr-8092-to-2018-04
* mono/mono@0fd16dfa237 Merge pull request #9001 from monojenkins/backport-pr-8348-to-2018-04
* mono/mono@56521df97b1 [arm64] Fix llvm jit support.
* mono/mono@e129a25c91c [System.Runtime.Serialization] Makes more APIs work for mobile
* mono/mono@543b6872feb Bump msbuild to track mono-2018-04
* mono/mono@ed7cb7a6b7f [runtime] Add llvm aot mode with graceful fallback
* mono/mono@33a9dca4932 Add PowerPC configure flags for LLVM, and clean up failover linker flags (#8996)
* mono/mono@7008c37886e Merge pull request #8992 from monojenkins/backport-pr-8285-to-2018-04
* mono/mono@854f3e29524 [mono-api-html] Fix markdown diff which was reversed
* mono/mono@c54cae3345e [bitcode] Fix the generation of invalid llvm IR for some Span code.
* mono/mono@5d60a2b8432 [mono-api-html] Update tool to optionally output markdown
* mono/mono@1f3334fd93a Merge pull request #8974 from mono/backport-fix-gh-8712-to-2018-04
* mono/mono@23c06f5e547 Merge pull request #8973 from monojenkins/backport-pr-8813-to-2018-04
* mono/mono@9def5c0a11a [System.IO] Dispatch events asynchronously in FileSystemWatcher.DispatchEvents()
* mono/mono@c903094761a [System.IO] Prevent the CoreFX bridge from even try-entering a monitor.
* mono/mono@462f5112228 [System.IO] Finish initializing all FileSystemWatchers, not just the first one
* mono/mono@a08e664e4ce [System.Windows.Forms] fix PropertyGrid
* mono/mono@2987232bc14 Merge pull request #8953 from directhex/fix-2018-llvm
* mono/mono@5ddc0c5fdf9 Fix building of LOADED_LLVM on Linux, from duplicate eglib linking (#8287)
* mono/mono@b2ded076c9d [build] Includes tools used by XI/XA build CI in build profile
* mono/mono@fa9903bcc1d [2018-04] Finalize merp integration (#8870)
* mono/mono@820bff26b3b [2018-04] Sanitize TLS handling in the profiler. (#8881)
* mono/mono@6d28c8f9621 Bump API snapshot submodule
* mono/mono@b2cac0129fe Bump cecil
* mono/mono@8c55e41d50f Bump linker to resolve XA issues
* mono/mono@ba806e58df0 [runtime] Gracefully handle crashes before mono-state dependencies initialized (#8843)
* mono/mono@0e0bf762eda [corlib] Update TaskFactory tests to accommodate running on different sync context
* mono/mono@46e3bd5099f [corlib] Disables test which depends on LogicalCallContext for mobile (#8835)
* mono/mono@67c1e412e2b [monitor] Fix abort of synchronisation wrapper (#8828)
* mono/mono@b705cec3c73 Merge pull request #8836 from monojenkins/backport-pr-7412-to-2018-04
* mono/mono@a18994cc412 [MacSDK] Update Nuget to 4.7.0
* mono/mono@efe1fdeb9de [loader] LoadFrom of problematic images should reprobe
* mono/mono@993fc87b3f9 [debugger] more locking and avoid race around mono_threads_join_lock & loader lock
* mono/mono@737ecd10338 [debugger] Add locking around tls->frames usage/freeing
* mono/mono@09855094c15 [android] Fix truncating of messages longer than 4096 characters (#8762)
* mono/mono@419d3136fe9 mkbundle interop changes
* mono/mono@97101d40aac don't fail on unsupported ipv6 in BeginConnect
* mono/mono@4785686a4de Backport "Implement Freeform Unmanaged Error" to 2018-04 (#8688)
* mono/mono@61c25c4e10e Added corlib .sources files for the ORBIS profile (#8786)
* mono/mono@99fedb1741f [aot] Fix encoding/decoding of types with custom modifiers. (#8729)
* mono/mono@32ae8ad5288 Bump bockbuild to get Pango patch
* mono/mono@c1ef203b2ca [corlib tests] improve ThreadPrincipalTests regarding SynchronizationContext (#8761)
* mono/mono@a7160188e5c [ci] Fix URL for apidiff/csprojdiff report
* mono/mono@ef73a4955df Bump bockbuild to pull in GTK userSpaceScaleFactor deprecation warning fix
* mono/mono@769481d834c [Mono.CSharp] Mimic the settings from System to track the feature flags, fixes GitHub #8698 (#8706)
* mono/mono@4e47c8dfdca Bump msbuild to track mono-2018-02 (#8683)
* mono/mono@c4492e09495 Merge pull request #8656 from monojenkins/backport-pr-8438-to-2018-04
* mono/mono@ab6962b1838 [System] Add regression test for #8417.
* mono/mono@ad1a10e4a41 [System] When doing process redirect, use Console.OutputEncoding instead of Console.Out.Encoding. Fixes #8417.
* mono/mono@ecf6b882051 Bump msbuild to track mono-2018-02 (#8631)
* mono/mono@f3577389f6d Merge pull request #8595 from monojenkins/backport-pr-8580-to-2018-04
* mono/mono@9a4c8f33987 nuget-hash-extractor: Add msbuild extensions nuget version from
* mono/mono@f42debee5ee nuget-hash-extractor: Add msbuild extensions nuget version from
* mono/mono@9ca82d47eea nuget-hash-extractor: Add `all` option to emit all 3 lists
* mono/mono@ce195600a3f nuget-hash-extractor: Improvements for better, deterministic output
* mono/mono@da473eaff56 nuget-hash-extractor: Sort the lists for easier reviews
* mono/mono@858aa226dc4 [native types] fix nfloat:NaN on arm64 JIT and interp (#8565)
* mono/mono@fd09fd9d444 [sdks] fix $(mktemp) usage on older versions of macOS (#8521)
* mono/mono@12a21428529 [2018-04] [arm64] Interp entry trampoline (#8484)
* mono/mono@c7b237f1be7 [2018-04] [interp] Enter in the interp through a single generic trampoline (#8453)
* mono/mono@0ebfd3e385a Merge pull request #8471 from monojenkins/backport-pr-8306-to-2018-04
* mono/mono@50d84a37193 Only show config.log when running on bots.
* mono/mono@3e566852dc4 [sdks] Wrap configure to provide better output.
* mono/mono@61fa43b9099 Merge pull request #8423 from luhenry/backport-pr-8411-to-2018-04
* mono/mono@196ea0219b3 Merge branch '2018-04' into backport-pr-8411-to-2018-04
* mono/mono@b7db3364a0d [2018-04] Backport float32 changes. (#8398)
* mono/mono@20ae78fcc83 Merge pull request #8394 from monojenkins/backport-pr-8318-to-2018-04
* mono/mono@a5af7f28dc3 [arm] Fix a regression introduced by: (#8414)
* mono/mono@869e019e158 [mini] Add regression test for punting a type system check.
* mono/mono@3ddda667e12 [mini] Don't verify types if you store to a pointer byref. Workarounds #8403.
* mono/mono@599f3dd3afe [watch] Align cinfo->stack_usage to 16 on watchos. (#8375)
* mono/mono@efdd8353ed3 [packaging] Apply F# patch that fixes #8310 (#8400)
* mono/mono@cf3e776887f [2018-04] [runtime] Add a signal handler for sigterm (#8384)
* mono/mono@38ffddd6c74 [runtime] Set the error if the class has a failure.
* mono/mono@f2943b182aa [runtime] Use m_class_has_failure ().
* mono/mono@584b77e4024 [runtime] Handle failed classes in mono_type_get_checked (). Fixes https://github.com/mono/mono/issues/8311.
* mono/mono@34bb601d181 [sdks] Match more closely the pre-SDKs configure flags passed to LLVM (#8381)
* mono/mono@b759166b96e [System.Net] do not use Thread for SocketTest.TestSelect1 (#8368)
* mono/mono@b7015d6fd2e Merge pull request #8336 from monojenkins/backport-pr-8302-to-2018-04
* mono/mono@68f94932b7b Remove unused signal.h include in interp.c
* mono/mono@de3c8c587a6 [corlib] Disable failing test on XA (#8353)
* mono/mono@766778b5453 Fix mono_perfcounter_instance_exists to match prototype when #ifndef DISABLE_PERFCOUNTERS.
* mono/mono@3693fb14f4b [sdks] Fix mktemp parameters (#8323)
* mono/mono@98a3dd7f34a [corlib] Fix TimeZoneInfo.Local when /usr/share/zoneinfo is a symlink (#8305)
* mono/mono@32ba15ee0be [corlib] SynchronizationContext does not work on non-root AppDomain on Android (#8297)
* mono/mono@0931f21c4c5 [w32file-unix] fix mistake in 8430155946c31f0f3f5f04017eebd79ac15e566d (#8300)
* mono/mono@85e13e6e2f0 [2018-04] [runtime] Add public API to set the pending exception. (#8279)
* mono/mono@d835b7d55f0 [2018-04] Fix timestamp for file copy (#8248)
* mono/mono@1d946e0f389 [sdks] Fix typo + Fix verbosity of unzip-android-archive.sh (#8244)
* mono/mono@bfa85bcaaa0 [msvc] Update csproj files
* mono/mono@ecd24fa6b53 Merge pull request #8204 from monojenkins/backport-pr-8202-to-2018-04
* mono/mono@eee8ff7cfc3 [system.net] disable some tests to unblock XI integration
* mono/mono@99a992605f0 [System.Net.Http] Use '*' as the host instead of '+' in the tests. Fixes xamarin/maccore#673.
* mono/mono@13aa6b71992 [eglib] GMarkup: allow all ASCII NameStartChar and NameChar except ':'
* mono/mono@3472efcdf98 [sdks] Add ANDROID_BUILD_TOOLS_DIR to differentiate it from ANDROID_BUILD_TOOLS_VERSION (#8194)
* mono/mono@1029de31472 [sdks] Fix typo (#8188)
* mono/mono@28597809271 [corlib] Make more crypto oids work on mobile profiles when not linked out
* mono/mono@61ab3f7a341 [2018-04] [sdks] Add support for building llvm unless the USE_PREBUILT_LLVM Make.config var is set. (#8148)
* mono/mono@6d5d7b57f22 [interp] support r4 (single) in stelem instruction
* mono/mono@f710b2c8e5d [llvm] Increase the inline limit when using llvm in jit mode. (#8167)
* mono/mono@e50ce8ad663 [mcs] Fixes parameter check for interface types used with default parameters
* mono/mono@b8187777055 [System] Don't use http://www.mono-project.com for test (#8147)
* mono/mono@05ed822a484 [corlib] Implements CryptoConfig::AddAlgorithm on all profiles
* mono/mono@0a5fdb5841f [2018-04] [Facades] Add System.Drawing.Common on mobile only (#8129)
* mono/mono@13183bc82b9 [2018-04]  [corlib] Enable machine.config dependant version of CryptoConfig for net_4_x profile only (#7974)
* mono/mono@147e34f2542 [mcs] Adds private protected modifier to the parser only
* mono/mono@561092003ca [w32file] Fix memory leak (#8113)
* mono/mono@6cdbc561fca [sdks] Fix arguments passed to llvm on Linux (#8110)
* mono/mono@0dba58a7345 [2018-04] more iOS sdk backports  (#8063)
* mono/mono@c0af9ad2cc9 [mcs] Fixes codegen when probing reference type expression is known to pass and pattern variable has to be created (#8086)
* mono/mono@88b6094e06c [System] Disables compiled regex (#8088)
* mono/mono@4fbdeebbe8a [mcs] Implements C# 7 digits separators (#8098)
* mono/mono@bd8731da012 [interp] use same domain as transform phase to register debug data for a method
* mono/mono@ea838e84f1b [SDKS] fix Linux (and possibly other OSes) build for Android (#8043)
* mono/mono@c3ae712ab13 [mcs] Implements C# 7.2 stackalloc span conversion in conditional expression
* mono/mono@7af9ad8cdb6 [interp] workaround undefined behaviour in r8 to u1 cast
* mono/mono@5921faad1cd [runtime] Fix --disable-btls.
* mono/mono@4bad0d67655 [mcs] Implements C# 7.2 conditional ref expression
* mono/mono@b0aaec8e96b [interp] do not bake object reference into code stream
* mono/mono@e0b0a87e65f [sdks] Use wget in place of curl, it's installed by default on Linux (#8059)
* mono/mono@b8fb7b5e18d [System]Fix memory leak in the web stack related to `Task.Delay` (partial fix of #7356).
* mono/mono@8a20f0dfffb [SDKS] Fix Android SDK build on Linux (#8024)
* mono/mono@04529e90e24 [interp] fix i4<>i8 conversion for builtin types, it was inverted (#7987)
* mono/mono@83d7bc1a0cd [sdks] Fix MXE_PREFIX for XA (#8009)
* mono/mono@d1c10f86936 [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. (#7971)
* mono/mono@e9b1c90e9d5 [2018-04] [sdks] Add provisioning for Android SDK and NDK (#7978)
* mono/mono@59e6eb29e61 [2018-04] [Facades] Add System.Memory facade to mobile profiles (#7968)
* mono/mono@5053d17e50f Bump version to 5.14 (#7954)
* mono/mono@9cd9e3b0a13 [ppc] use ucontext_t
* mono/mono@90b49aa3aeb Merge pull request #7946 from kumpera/wasm_fix_a_few_issues
* mono/mono@21a9412a676 [sdb] Fix --enable-minimal=soft_debug build. Fixes #7920. (#7945)
* mono/mono@95276e9ddb3 Merge pull request #7943 from filipnavara/corefx-sd-tests-1
* mono/mono@cdea795c0e4 [wasm] Make RuntimeInformation properly detect WebAssembly.
* mono/mono@d8648776cc6 [wasm] Bump corert to pick fix for TaskCreationOptions.LongRunning. Fixes #7864.
* mono/mono@106ef365e31 [wasm] Disable the degraded alloc warning under wasm. Fixes #7661
* mono/mono@2bf9a42fd3a [wasm] Fix the build.
* mono/mono@5bdb87b6a67 [wasm] emcc has a broken clock_getime. Disable its usage.
* mono/mono@a810739246b Include CoreFX GraphicsPath and Region tests.
* mono/mono@4723e6603e6 Merge pull request #7915 from alexischr/fix-gh-7568
* mono/mono@2b4208feda5 [System.Windows.Forms] Set NotifyIcon.Icon in test to prevent warning
* mono/mono@a914dbf1734 [System.Windows.Forms] Dispose forms opened during two tests
* mono/mono@fcd52894d9b [System.Drawing] Remove failing jpeg flags tests (#7931)
* mono/mono@254013b0fdf [runtime] Fix class visibility check for protected nested classes. (#7907)
* mono/mono@ebef3ec4b18 [msvc] Update csproj files (#7929)
* mono/mono@2cbd1706dcc [System.Drawing] Enable corefx xunit tests (#7924)
* mono/mono@4d78aaf7b46 [genproj] When using fallback profile selection don't build the projects that were missing a profile (#7926)
* mono/mono@1931cb1dcbc [Tests] Disable hijacking.exe and Jittailcall2.exe tailcall tests. (#7922)
* mono/mono@938415c6d39 [test-runner] Don't output test result xml when no tests are run
* mono/mono@a5a496695a0 Disable building btls/ and support/ on the bcl build, they are not needed. (#7921)
* mono/mono@2e0182b5c06 Implement Field SetValueDirect on non-struct targets. Add test case from roslyn issue 19038. (#7866)
* mono/mono@88cab36c200 [sdks] add Make.config to ignore file (#7901)
* mono/mono@5c839fc1097 Bump msbuild to track xplat-master (#7900)
* mono/mono@f83fbbd9b8a [sdks] Fix LLVM build for XA (#7917)
* mono/mono@a36d08a55ac [perfcounters] fix alignment issue on 32bit
* mono/mono@1e1893d683f [System.IO] Don't throw exception when FileSystemWatcher is disposed while the backend is still trying to use it
* mono/mono@a1751d91c86 Revert "Disable some flaky tests."
* mono/mono@2c14b1f82c2 Revert "Disable a flaky test."
* mono/mono@86df754848d Revert "Disable bug-80307.exe"
* mono/mono@60707875d59 Revert "[sdks] Disable btls and support/ on the bcl build, they are not needed. (#7892)" (#7904)
* mono/mono@6f0fba8961a [Tailcall] Bring coreclr tests for tail calls to Mono source tree (#7204)
* mono/mono@765ea257723 [sdks] Fix LLVM build on Linux for XA + Fix MXE usage on non-Darwin platforms (#7910)
* mono/mono@1d36e15392d [msvc] Update csproj files
* mono/mono@81a781bb02f add some OpenBSD patches (#7699)
* mono/mono@792196320f4 [sdks] Disable btls and support/ on the bcl build, they are not needed. (#7892)
* mono/mono@573e460e97c Fix tarball build
* mono/mono@7ec24235351 [packaging] Bundle the msvc compiled monograph.exe on Windows
* mono/mono@3dad276e2d2 Bump api-snapshot
* mono/mono@77b2db73aaf Add BindingFlags.DoNotWrapExceptions (#7863)
* mono/mono@9ff460b0049 [sdks] Disable wasm on the ios sdk lane. (#7894)
* mono/mono@e70a872c533 [sdks] Fix usage of MXE for XA (#7897)
* mono/mono@5841ffff038 [System.Windows.Forms] Ignore non-visible controls when computing ScrollableControl canvas size (#4247)
* mono/mono@407e254643c [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 (#7893)
* mono/mono@6c901dbfc58 [sdks] Pass MXE_SRC from XA to use `xamarin-android/external/mxe` (#7888)
* mono/mono@ff40ceff387 check for iconv only once (#7873)
* mono/mono@e3e1fe1c16f [corlib] Moves DynamicMethod to mscorlib to work better with wasm (#7875)
* mono/mono@ada6edbad87 [bcl] Fix the compilation of System tests in the mobile profile. (#7882)
* mono/mono@2f66873ab2a [msvc] Update csproj files (#7811)
* mono/mono@753cc874f64 [jit] Add signature checking for CALLI. (#7832)
* mono/mono@ab62d30edb0 [genproj] Move obj to common folder and remove unnecessary properties (#7870)
* mono/mono@8c86a805ff7 [mcs] Updates common array bounds unification to use universal type comparer
* mono/mono@b42086d4504 Use __PASE__ for things i needs that AIX doesn't (#7858)
* mono/mono@f00eba8a7cc Whitelist illinkanalyzer in macOS package (#7861)
* mono/mono@4a247e7ed9a Merge pull request #7740 from alexischr/corefx-unknownunix-fsw
* mono/mono@03a153c7b36 Bump API snapshot submodule
* mono/mono@e6f90edfcd1 [System]: Disable the System.Net.ServicePoint tests from corefx.
* mono/mono@0f9b7f730f8 mono_perfcounter_counter_names returns incorrect names, and restructure slightly for clarity (#6355)
* mono/mono@9b36f1452f4 wcf: fix index of message body parts. Do not use MessageBodyMemberAttribute.Order as index.
* mono/mono@3c8bf90a40e [System.IO] Use CoreFX FileSystemWatcher stub for mobile profile
* mono/mono@6caa9bd8812 Disable a flaky FileSystemWatcher test
* mono/mono@7e31c5d11f7 Merge pull request #7849 from marek-safar/corefx-fixes
* mono/mono@294707cf882 [build] Fixes bootstrap invocation of cil-stringreplacer
* mono/mono@dc1ef2ea3a2 [runtime] One more MonoClass getter fixup (#7836)
* mono/mono@dc6700a799f [corlib] Restores ConcurrentDictionary serialization support.
* mono/mono@32e6bccc2d1 [System] Makes TLS providers linker friendly
* mono/mono@554690a64cd [build] Update monolite package to support cil-stringreplacer (#7847)
* mono/mono@96e8fa67e2f [bcl] Fix Cscompmgd/I18N.Rare not having any tests (#7842)
* mono/mono@3157302581e Pull in bug 53272 fix
* mono/mono@16d5c314094 [ci] Bundle nunit xml results in a .tar file (#7843)
* mono/mono@5e1acb47f5d [genproj] Deduplication of project references (#7844)
* mono/mono@b20d5ce1e5d [runtime] Rework how the native-to-managed eh callback is called. (#5837)
* mono/mono@2b663424a04 [threads] Remove suspicious mono_gchandle_free
* mono/mono@f66032b7c0f Fix F# build. (#7826)
* mono/mono@e610e443cd6 Structure field that cannot be marshalled throws exception instead of aborts\n Alllow structure pointer conversion for blittable multi-dimentional arrays (#7794)
* mono/mono@febd5ac5358 MonoClass getters mop-up PR (#7806)
* mono/mono@a5099ca2a44 [mini] Use MonoClass getters in method-to-ir.c (#7772)
* mono/mono@2ce121ab7b1 [sre-save] Remove type_token assignment in mono_image_fill_export_table (#7803)
* mono/mono@2f5077a1fba [sdks] Fix the ios sdk build. (#7801)
* mono/mono@dde9ee5e79e [w32handle] Lower minimum memory usage (2nd attempt) (#7508)
* mono/mono@30903764c24 [sdks] Fix Android build for toolchain (#7817)
* mono/mono@2709d2309e6 [mini] Use MonoClass getters on non-AMD64 platforms (#7799)
* mono/mono@506fc0b522f [genproj] Deduplication of sources (#7810)
* mono/mono@331f3d9f27e Fix warnings and cleanup style. (#7800)
* mono/mono@954911d3f1a Genproj updates for BCL build in Windows Visual Studio (#7755)
* mono/mono@431c67415cf [mini] Use MonoClass getters in aot-compiler.c (#7773)
* mono/mono@76f01933880 [ci] For checked builds, pass -k to make (#7802)
* mono/mono@43d9c4737bc Imports FtpWebRequest from CoreFX (#7644)
* mono/mono@bc25029b580 Disable some flaky tests.
* mono/mono@901ccebb0ac [sdks] Disable the interpreter on ios device builds. (#7793)
* mono/mono@e3c284c4e36 CodeOwners update (#7798)
* mono/mono@74daf13fb29 Harden JIT job control against cctors deadlocking. (#7423)
* mono/mono@7bb6e59e38c [runtime] Fix lock tracer compilation error (#7767)
* mono/mono@1bdcf191697 [corlib] System.Collections from CoreFX (#7478)
* mono/mono@3aeab61192b [mini] Use MonoClass getters in a few files (#7771)
* mono/mono@158bb416eb0 [interp] Use MonoClass getters (#7774)
* mono/mono@b06de64bf86 Fallback to listing drives in My Computer using System.IO.DriveInfo.
* mono/mono@b8fdce6c053 [Tailcall] Fix virtual generic methods that F# tests uses. (#7524)
* mono/mono@066ce338255 Add tailcall support & fix floating point ABI (#7695)
* mono/mono@d233bdbf998 [icall] remove DISABLE_PROCESS_HANDLING (#7779)
* mono/mono@7de72fbf3f0 [interp] support increment and decrement of nint/nuint
* mono/mono@d4247747510 [interp] improve error message and add another interp_in signature
* mono/mono@dfabaa59175 Remove incorrect docs (#7784)
* mono/mono@67e995c6e27 [interp] Improve mixed mode execution support, using full-aot+interp as the configuration. (#7764)
* mono/mono@9c63d1bf9df [sdks] Fix Android build for mxe (#7781)
* mono/mono@8a3b4bf2af0 [sdks] Fix Android build on Linux (#7775)
* mono/mono@95d450660be [interp] move variable decl into ifdef to avoid unused warning (#7763)
* mono/mono@392e1c368c3 [Tailcall] Proper fix for F# regression, at least some architectures. (#7658)
* mono/mono@45c94b22ab3 [sdks] Fix Android build (#7768)
* mono/mono@d856789ccd4 Bump corefx to bring a fix for #7696
* mono/mono@9bc0a49bc78 [runtime] Fix the cross compiler build. (#7754)
* mono/mono@3d2891097a7 Merge pull request #7748 from lambdageek/fix-gc-descr-object-c
* mono/mono@3283af3449d [msvc] Update csproj files
* mono/mono@3ec9fda3718 [System.Core] Guard against embedded NUL in strings for MemoryMappedFiles (#7318)
* mono/mono@6822a57663b Disable a flaky test.
* mono/mono@54e3eccc5d8 [build] Bump bootstrap mcs dependency for mcs builds to catch up with e6fb82b2c7b4a8f42827f9a952dec0a03ae9c8c9
* mono/mono@99d31278e35 [interp] always set old_frame in interp_entry (#7757)
* mono/mono@c2698519b0c [interp] Allocate ThreadContext structures on the heap instead of on the stack, the latter doesn't work in mixed mode if the native frame gets unwound during exception handling, so the set_context (NULL) call is never executed, leaving a dangling ref in the tls variable. (#7747)
* mono/mono@678576f5a8c [System.Windows.Forms] Reset check state of item when removing it. (#7744)
* mono/mono@87fd0714126 Revert "Swap Close/Dispose calls so that the receiver_thread_main loop will be properly interrupted (#7390)" (#7745)
* mono/mono@9b702e8052f Bump API snapshot submodule
* mono/mono@e6fb82b2c7b Bump bootstrap dependency
* mono/mono@7a9f8405d49 [corlib] String from CoreFX/CoreRT
* mono/mono@20ba08543e4 [corlib] Use UTF8 bytes convertor directly
* mono/mono@d9e3d7c4075 Remove dead code (#7738)
* mono/mono@c732bd47584 This fixes an issue we are seeing with VSTU debgugging in Unity. (#7634)
* mono/mono@7faa4620462 Fix bug #60843 and add test (#7640)
* mono/mono@d26fb8a3eb3 Forward mono_string_new_wrapper to mono_string_new for error handling. (#7718)
* mono/mono@d5d1fb290d0 Bump roslyn-binaries to include missing file
* mono/mono@dd09fa9982d [mcs] Adds cloning for TupleLiteralElement expressions (#7746)
* mono/mono@3fa3592376c Uncomment and fix ServiceHost creation via ServiceFactory in SvcHttpHandler.cs (#3465)
* mono/mono@74dd088d400 [metadata] Add mono_class_publish_gc_descriptor
* mono/mono@f42fdeca61b [mcs] Fixes codegen for null fixed string statement
* mono/mono@8e3be153357 [metadata] Move mono_class_compute_gc_descriptor back to object.c
* mono/mono@9e4eb1ca69a Bumps roslyn to 2.7.0
* mono/mono@dc0cf83b3a8 [arm] fix stack alignment for structs (#7691)
* mono/mono@0dec8fda18c [sgen] Fix scanning of large arrays (#7672)
* mono/mono@39c9f9d935d Merge pull request #7724 from lewurm/wildcardconnect-watchos
* mono/mono@e40c97e7718 [interp] Disable pinvoke3.exe test on x64 (#7739)
* mono/mono@06463f4ca2a [Tailcall] Add interface tailcall tests, and generics thereof. (#7703)
* mono/mono@9914517a125 Remove obsolete code for getting TLS values from other threads. (#7714)
* mono/mono@9fe7008d97f [HttpClientTest] remove WildcardConnect () on WatchOS
* mono/mono@7dea71ce64b Touchup for https://github.com/mono/mono/pull/7599/
* mono/mono@37660898982 Merge pull request #7599 from lambdageek/abort-cctor-no-protection
* mono/mono@f617929e9e2 [runtime] Don't use clock_gettime on WatchOS and tvOS.
* mono/mono@081c79e6871 Add csc-dim script to .gitignore
* mono/mono@7cc78d08b09 Merge pull request #7707 from mono/fix-boottime-osx-10.7
* mono/mono@9cf2550ba2d Update man page, MONO_DISABLE_AIO is now MONO_ENABLE_AIO. (#7715)
* mono/mono@16e6e7df70a [sgen] Finish thread pool work before shutting down threads (#7647)
* mono/mono@e480620040e [System]: Fix a race condition that was exposed by #7358 (see #7668).
* mono/mono@120aa248fa5 [sdks] Fix building the ios device tests. (#7706)
* mono/mono@a5c6f5c5ca2 [w32file] do not discard sub-second resolution for access- and writetime if possible (#7650)
* mono/mono@b37166882de [runtime] Fix file handle leak with dedup+aot (#7694)
* mono/mono@feb8b568bab [mprof-report] Fix reading of TYPE_JITHELPER events in v13 files. (#7677)
* mono/mono@b77313855c2 [loader] Don't load framework Facade assemblies that are older than expected. (#7663)
* mono/mono@62921c8a62e [runtime] Don't use clock_gettime in MacOS.
* mono/mono@7528656820c [msbuild] Bump msbuild to pick up fix for issue #7184 (#7665)
* mono/mono@53a59ccf766 [sdks] Fix building the ios tests. (#7701)
* mono/mono@1c8b460b4cf [version.h] Support .git being a submodule (#7689)
* mono/mono@e99ac890e6a Add csc-dim as a prototype if default interface implementation
* mono/mono@7aeaafd2819 [runtime] Fix mono_msec_boottime () so it compiles on older ios versions, clock_gettime () is only available from ios 10. (#7671)
* mono/mono@8ae317a1e82 [arm64] Add a known TLS offset. (#7530)
* mono/mono@b6f56a115fc [Tailcall] Cleanup, handle varargs, cleanup varargs handling, be sure not to use unsupported tailcall_membase, pass r11 through, align patches. (#7600)
* mono/mono@249a02d9366 Updates codeowners (#7679)
* mono/mono@5232bef2825 Disable a flaky FileSystemWatcher test (#7578)
* mono/mono@540ef385faa If a bad header is received from the client or the connection is broken, send an internal VM_DISPOSE command to shut down the debugger thread properly.  This prevents runtime hangs that occur during profile events after the debugger shuts down.
* mono/mono@68a9bbe69f8 Update Server.py to run on both python 2 and 3
* mono/mono@2f211770198 Merge pull request #7584 from alexischr/fix-gh-6940
* mono/mono@fe3c5134bf5 Implement C#7 binary literals (#7659)
* mono/mono@421e0174793 [System.Windows.Forms] Fix bounds manipulation in Control.DrawToBitmap (#7629)
* mono/mono@d3e2518fb60 [sdks] Fix concurrent building of MonoAotOffsetsDumper.exe + Simplify building of support library (#7652)
* mono/mono@e36148dbd26 [tests] Prevent starvation by thread doing GCs (#7651)
* mono/mono@ec4c990af3e [System.Net] Replace use of obsolete `SupportsIPv6` property.
* mono/mono@43415f5f2b5 [threads] Add mono_uninstall_current_handler_block_guard
* mono/mono@92042c97323 [threads] Delay abort via handler block guard when in abort protected block.
* mono/mono@b0734593de5 [tests] Run abort-cctor.exe on the coop Jenkins job
* mono/mono@ea4274f2eb7 Revert "[Tailcall] Proper fix for F# regression." (#7656)
* mono/mono@fdbf51184ac [msvc] Update csproj files (#7654)
* mono/mono@b2271853c33 [Tailcall] Proper fix for F# regression. (#7621)
* mono/mono@9b3893f84a1 [tests] Class should be viable even if cctor is aborted in in nested finally clause
* mono/mono@247a13b081f [System.Windows.Forms] Improve logic for closing complex ToolStripDropDown layouts. (#7630)
* mono/mono@5d23a12446d [System.Windows.Forms] Unify layout engines for Controls and ToolStripItems (#7612)
* mono/mono@6bdeea15030 [jit] Incorrect code under mono --trace. (#7627)
* mono/mono@395b37c2865 Fix issue #7596 on Windows x64. (#7625)
* mono/mono@5820d1fc668 [sgen] Use current nursery size when computing allowance (#7601)
* mono/mono@52429673dc6 [mini] Don't inline methods if they're going to be instrumented for coverage. (#7554)
* mono/mono@851b36ecb25 [mini] Improve error reporting by using MonoError around more places. (#7607)
* mono/mono@6906c9dc40a  [interp] Don't crash when freeing delegate ftnptr  (#7586)
* mono/mono@2883e562e2d Fix platform-specific build issues (#7342)
* mono/mono@2d0eee9ae33 [jit] Fix partially shared constrained calls in llvmonly mode. (#7561)
* mono/mono@ec319e6de7a [aot] Increase the buffer size in emit_exception_debug_info (). (#7638)
* mono/mono@ff61c7751a6 [build] Fixes mcs only dist build
* mono/mono@4b88e2a0e29 [System]: Introduce `WebCompletionSource<T>` and use it in `WebOperation`. (#7358)
* mono/mono@29c2ba9387f Merge pull request #7520 from alexischr/use-coreclr-GetTickCount
* mono/mono@7e3a1ddaa09 [mcs] Fixes parsing ref-struct with partial keyword
* mono/mono@87282805504 [sdks] IOS fixes. (#7617)
* mono/mono@40b53bd2e0e [corlib] Handle multiple segments in IsolatedStored::GetFileNames. Fixes bxc #11771
* mono/mono@8ceead93e3e [Tailcall] Quick fix for building F#. Do not tailcall any method with a vtable_arg. (#7609)
* mono/mono@1c88a115453 [Coop thread threadpool mmap] Convert more functions to coop/handle. (#7097)
* mono/mono@239aad5265b [msvc] Update csproj files
* mono/mono@34b4d35fb78 [runtime] Clean up symbol names to not pollute the global namespace.
* mono/mono@1d70b627704 [profiler] Increment ref count of an image's method while we're keeping around pointers to it.
* mono/mono@6b116cca186 [merp] only target macOS, HOST_DARWIN includes iOS etc. as well
* mono/mono@40924c47ba0 [Mono.Data.Sqlite] Throw better exception for missing mobile support
* mono/mono@a856f8d8e48 [Tailcall] Cleanup is_supported_tail_call, put more logic in it, and be sure not to tailcall_mem_base if not supported (i.e. virtual_ not just CALLVIRT) (#7608)
* mono/mono@7e7d8a3b4fc [Facades] Make System.Net.Http.Rtc.dll a net_4_x only facade (#7590)
* mono/mono@5f572ff7a62 [msvc] Update csproj files
* mono/mono@6e246cf6134 [Facades] Move types from Facades into class libraries (#7574)
* mono/mono@4e3389667f6 [System.Xml] Update source file location from commit d4816ef1abcfc5b3dea41a87fe5a7a4c4a3781ed
* mono/mono@8c3d7c81af7 [System.Windows.Forms] Fix custom test targets in makefile. (#7571)
* mono/mono@9dbd080c293 [System.Windows.Forms] Update code for top-level windows (#7570)
* mono/mono@e85dbca0f2f Disable TestBug8592BasicOperations test
* mono/mono@b1d2b858251 Make Form scaling tests platform independent.
* mono/mono@cdb9b90baa4 Correcting typos for ISSUE_TEMPLATE.md (#7575)
* mono/mono@99198da52be [msvc] Update csproj files (#7559)
* mono/mono@16b3884854c Disable bug-80307.exe
* mono/mono@a601516ca1f [tests] Disable delegate-15.exe in the full-aot profile. (#7529)
* mono/mono@8f926ed4648 [ppdb] Set the column number in mono_ppdb_lookup_location ().
* mono/mono@78de6719641 Swap bytes for port number as Win32 API returns in network order.
* mono/mono@3b0c0bd1cff Build system tweaks for AIX (#7542)
* mono/mono@486036b6964 Revert "[Tailcall] Do not create never-executed trampoline for tail.call self. (#7331)" (#7550)
* mono/mono@06a4273d73c [mono-time] Replace mono_msec_boottime() with CoreCLR implementation. Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=58413
* mono/mono@e456f910530 Bump api-snapshot
* mono/mono@9a2b5324ee3 [Facades] Add missing Facades that exist in .NET 4.7.1 (#7541)
* mono/mono@b6be2e11a79 [threads] Fix race between abort socket syscall and thread shutdown (#7507)
* mono/mono@4ae98fb31b5 Merge pull request #7515 from kumpera/le_debugger_cleanup
* mono/mono@868a402137d [metadata] split IL generation code into seperate compilation units. (#7487)
* mono/mono@826f15a509a [interp] Fix return of value type from interp to native (#7519)
* mono/mono@f24a6d622be gboolean g_is_usermode_native_debugger_present (void). (#7488)
* mono/mono@03914603a3b [runtime] Add MS telemetry reporter for unmanaged exceptions (#7451)
* mono/mono@d3a4e19f3ca Merge pull request #7533 from akoeplinger/disable-test
* mono/mono@63e5e80d3a6 [bcl] Fix test build with mcs (#7512)
* mono/mono@14485be705f [System.Windows.Forms] Fix lifetime of Graphics objects in TextBox controls (#7491)
* mono/mono@b9d52fc4f12 [System] Disable SocketTest.AcceptBlockingStatus
* mono/mono@91b64b4560b [System.Windows.Forms] Fix bugs in PrintPreviewControl. (#7493)
* mono/mono@ee30689c181 Implement native ValueType Equals and GetHashCode support for pointer fields
* mono/mono@4532cf5fd55 [interp] Fix stack usage after throw (#7461)
* mono/mono@523ba159c2b [sgen] Fix the clearing of bits in the gc descriptor bitmap when using weak fields.
* mono/mono@660e166c7b6 [eglib] Fix typo in g_assertf (#7458)
* mono/mono@c745a9575d0 [jit] Move the check for open constructed types later in mono_jit_compile_method_with_opt (), this function can receive (#7494)
* mono/mono@25f4ef27897 [wasm] Make switching between debug/release builds easy. Build pdb files.
* mono/mono@eba41fd88a6 [wasm] Update SDK driver to handle debugging.
* mono/mono@334ddbd3ef6 [wasm] Initial support for debugging.
* mono/mono@1a56fe6a159 [wasm] Fix unwinding to work with the general unwinder.
* mono/mono@ccbb873498b [interp] Fix pinvoke from dynamic methods
* mono/mono@4ad92ef05f7 [interp] Fix detection of pinvoke call
* mono/mono@940f2d1a9fe [interp] Fix runtime invoke of pinvoke method
* mono/mono@e0f8597e9c9 Fix generated file when passing --bundled-header (#6736)
* mono/mono@b4ee86154fc [Tailcall] tail.callvirt support for AMD64 JIT (#7426)
* mono/mono@c2bf82fb98f [System]: WebRequestStream now throws correct exception on cancellation (#7074).
* mono/mono@8e4f0d8ff44 [Tailcall] Do not create never-executed trampoline for tail.call self. (#7331)
* mono/mono@ab67bcfd0bf Provide compile-tests-parallel that honors the command line so e.g. (#7479)
* mono/mono@3e8f4f7db8d [msvc] Update csproj files (#7497)
* mono/mono@a5f980dc00f [interp] Let the backend deal with thiscall cconv
* mono/mono@8b2ca1344f7 [interp] Fix EH with exception thrown from icall
* mono/mono@da7650d3d96 Bump API snapshot submodule
* mono/mono@03b030d9213 TaskAwaiter from CoreFX
* mono/mono@12557bec396 [metadata] An array is not an IEnumerator`1
* mono/mono@1140ec53948 [test] An array is not an IEnumerator`1
* mono/mono@c0a5753b02a [metadata] Add IEnumerator`1 to MonoDefaults struct
* mono/mono@36a471f14e5 [System] Remove compiler config sections for types which cannot be instantiated
* mono/mono@32d06fd8036 [corlib] Fix Type.GetInterface() to find implemented interface when "ignoreCase: true" is used (#7464)
* mono/mono@1181815eeda [w32handle] Lower minimum memory usage (#7465)
* mono/mono@e6de24c2d19 [build] Unify DEFAULT_REFERENCE handling so I can override it with TARGET_NET_REFERENCE for individual tools
* mono/mono@73859e3df28 [msvc] Update csproj files
* mono/mono@e64cd8cc8da [profiler] Use accessor functions for MonoClass fields
* mono/mono@4e6f5f10fd2 nuget-hash-extractor: Add msbuild extensions nuget version from vs15.6 msbuild branch
* mono/mono@45f30c307b9 nuget-hash-extractor: Change the nuget repo name to use for
* mono/mono@695acd0a0b9 System.Text.RegularExpressions from CoreFX (#7363)
* mono/mono@85b605042b7 [acceptance-tests] Actually disable gcsuppressfinalize.exe test
* mono/mono@c89abe54670 Bump boringssl submodule.
* mono/mono@47df243579f [mini] unpack function pointers for jump patching
* mono/mono@095519c8996 [ppc] update define usages for creating/unpacking function descriptors
* mono/mono@4fea7fb7451 [ppc] use new patching machinery
* mono/mono@ffaf5ffe0f8 [mini-runtime] unbreak platforms where MONO_ARCH_HAVE_PATCH_CODE_NEW isn't defined
* mono/mono@8ba4947f7a3 [metadata] Use MonoClass getters in the rest of metadata/ (#7354)
* mono/mono@6f225e6176a [System.Windows.Forms] Fix inconsistent state of Document object (#7422)
* mono/mono@9e1ba501ffd Fix for gcc 4.4; nominal support for older. (#7419)
* mono/mono@56263d4a756 [mini] Virtual call target is never known, remove dead code. (#7424)
* mono/mono@62c8557a7a3 [System.Security] Fixes decoding of CMS/PKCS #7 messages with an explicit cryptographic object identifier
* mono/mono@02abf28216f [corlib] Ignore TimeZoneTest.TestCtors on iOS under certain conditions due to an Apple bug. (#7429)
* mono/mono@d1ed53624bf [acceptance-tests] Disable gcsuppressfinalize.exe test that started failing
* mono/mono@b664dfe79ff [System.Windows.Forms] Updated unit tests (#7405)
* mono/mono@30ad2195339 [mixed mode] skip gsharedvt_out_sig_wrapper frames and improve regression test
* mono/mono@dab1ffc081c [interp] use mini infrastructure for stack walking
* mono/mono@a785bd16e94 Merge pull request #7401 from filipnavara/swf-layout
* mono/mono@d2bf59dd3f4 PPC support for BoringTLS
* mono/mono@ee4ed72695d [acceptance-tests] Add an env var to turn on some Mono debugging options. (#7386)
* mono/mono@4af9e3a5114 [Coop] Convert System.Enum to coop/handle. (#7131)
* mono/mono@7c34f0c7467 [packaging] Support setting the FULL_VERSION number via env vars (#7414)
* mono/mono@f546b95edfe [runtime] Increase the BCL trampoline count (#7409)
* mono/mono@fe95e4b34b0 [jit] Fix the patching of tail calls for gshared methods, the caller and the caller were using different instantiations to search the jump_target_hash.
* mono/mono@56bf6d3a738 Bump API snapshot submodule
* mono/mono@ff60734df40 Add unit test for TextBox.PreferredSize property and fix updating the preferred size cache on Text change.
* mono/mono@58f25ff1f0f Add makefile rule to build and run the notepad sample.
* mono/mono@7b6b6075672 Remove obsolete code from FlowLayoutPanel that is no longer necessary with the corrected nested layouts.
* mono/mono@ae972579de4 When Form is set to AutoSize enforce it also as the minimum size for the window manager.
* mono/mono@f1de56d31cb Update XplatUI backends to properly send WM_WINDOWPOSCHANGED for zero-sized windows.
* mono/mono@e563776f62f Avoid couple of size recalculations by streamlining the SetBounds, SetBoundsInternal and SetBoundsCore methods. Now explicit bounds are only updated in SetBoundsCore, no more all the updating and restoring with UpdateBounds calls. Rely on the WM_WINDOWSPOSCHANGED message to be sent from XplatUI.SetWindowPos to call UpdateBounds. This avoids an explicit call to XplatUI.GetWindowPos and UpdateBounds in SetBoundsCore.
* mono/mono@ff38080cc07 Fix for bug_82326 unit test.
* mono/mono@af26d754ae1 Fix couple of relayouts causing incorrectly cached control preferred size. Fix events triggered in incorrect order when Control.Controls.Remove is called. Update Dispose behavior with events and exceptions to match the reference implementation more closely.
* mono/mono@5feb428acd5 Update DisposeTest to work on latest version of .NET Framework.
* mono/mono@4f3adb750d1 Add test for label self-sizing behavior.
* mono/mono@376002afb4a Call LayoutEngine.InitLayout when appropriate and move the dist_right and dist_bottom calculation there.
* mono/mono@a859588486d Add cache for PreferredSize value.
* mono/mono@016a5a86792 Fix propagating layout to parents and then back to children when PreferredSize changes.
* mono/mono@71931189fa7 Remove obsolete code for layout of AutoSize forms.
* mono/mono@622ad5480da Unify the code for layout of anchored controls to avoid setting the bounds twice for controls with AutoSize set to true.
* mono/mono@78ad684762f Fix the default layout engine and its quirks enough to pass all unit tests again.
* mono/mono@cbb07605df2 Move GetPreferredSize implementations from container classes to respective LayoutEngine implementations. Rework the layout engines to use AutoSizeInternal property since TextBoxBase has its own AutoSize that should not be respected by layout engines. Rework automatic sizing behavior of TextBoxBase to return correct values. Rework TableLayout completely to use same code for layout and calculation of preferred size.
* mono/mono@d758a6d65fb Fix updating panel references when assigning TableLayoutSettings to TableLayoutPanel.
* mono/mono@71989c037e7 Ignore invisible controls in FlowLayout.
* mono/mono@ca957c45b42 Apply size constrains to control sizes when calculating flow layout.
* mono/mono@4b093a9d2d2 Apply size constrains to control sizes when calculating flow layout preferred size.
* mono/mono@6943077ab90 Added missing support for flow breaks in FlowLayoutPanel's preferred size calculation.
* mono/mono@eed14424e50 Add tests for FlowLayoutPanel.PreferredSize.
* mono/mono@a3690115557 Apply the constraints when setting MinimumSize/MaximumSize and update the unit test to demonstrate it.
* mono/mono@78f4b60e6ca Reduce memory pressure by reusing the LayoutEngine objects.
* mono/mono@f56b7109424 Added missing PerformLayout() calls to Control.MinimumSize and MaximumSize setters.
* mono/mono@18001b61a3a Apply Maximum/MinimumSize constraints when calculating the preferred size.
* mono/mono@1417a68137c Update Label.InternalGetPreferredSize to take the proposed size into account.
* mono/mono@73c8e1f6156 Fix Label automatic sizing code.
* mono/mono@baf431b393a [metadata] Use mono_atomic_store_release to initialize gparam cache
* mono/mono@486be78f8a9 Update README.md with current directory structure
* mono/mono@965a813f51d [msvc] Update csproj files (#7404)
* mono/mono@0c6f7fa7c53 [mcs tests] fix runtime arguments passing to test harness (#7400)
* mono/mono@9725d50c872 [sre] Use MonoClass getters in sre-save.c (#7352)
* mono/mono@15578eab17c Bump corert
* mono/mono@43ac34b36e2 [sdks] Unify targets to build runtimes (#7394)
* mono/mono@e7ba41d14c7 Swap Close/Dispose calls so that the receiver_thread_main loop will be properly interrupted (#7390)
* mono/mono@24c52e28c0b Use VSCMD_ARG_TGT_ARCH env in mkbundle on Windows when trying to autoetect target architecture. (#7281)
* mono/mono@4874e18fd23 [corlib] Remove IVT for S.R.I.RuntimeInformation facade (#7385)
* mono/mono@a9c37afaa45 [sdks] Fix the ios build.
* mono/mono@16e5f049600 [interp] remove `method` field from `InterpFrame`
* mono/mono@182a7485865 [runtime] Use MonoClass getters in object.c
* mono/mono@2713dfc5776 [metadata] Move MonoClass:gc_descr and runtime_info initialization to class-init.c
* mono/mono@9abe6ebf590 [appdomain] Fix path clobbering when trying to shadow copy siblings
* mono/mono@76d5a164473 [Test] Reenable HttpRequestIgnoreBadCookies in monotouch. (#7330)
* mono/mono@bbb882b0181 [sdks] Add watch device build.
* mono/mono@b4d53f4d7c8 [sdks] Add watch simulator build.
* mono/mono@dd5e5c8239d [sdks] Add tv simulator build.
* mono/mono@6cc113a4b35 Ios sdk changes (#7258)
* mono/mono@d8e49b1c279 Fix build from tarballs due to missing corefx.unix.sources
* mono/mono@076557c37f4 Use attribute(deprecated) instead of attribute(error). (#7362)
* mono/mono@68376f1f9b2 [msvc] Update csproj files (#7367)
* mono/mono@319749c3148 Make it build.
* mono/mono@d51e55d4a31 Bump linker to its latest master.
* mono/mono@a838b6fb39e [interp] Enable more tests (#7315)
* mono/mono@8ddcea29564 [profiler] A few low-hanging enhancements. (#7314)
* mono/mono@ddf4e7be31b Update ppc badge to correct URL in README
* mono/mono@db635611434 Merge pull request #7341 from akoeplinger/dont-throw-in-dispose
* mono/mono@fa21013d7f0 Don't throw NotImplementedException in Dispose()
* mono/mono@2c2fac29ebc [msvc] Update csproj files (#7337)
* mono/mono@4f9b89adc17 CoreFX System.Runtime.CompilerServices (#7118)
* mono/mono@cb956b58a6a Revert "Revert "[System.IO] Integrate FileSystemWatchers from CoreFX The FSEvent CoreFX watcher becomes the new default for MacOS.""
* mono/mono@fdefcf1f25b Fix build
* mono/mono@2174a521a3e Revert "[System.IO] Integrate FileSystemWatchers from CoreFX The FSEvent CoreFX watcher becomes the new default for MacOS."
* mono/mono@f5b10f34a98 [System.IO] Integrate FileSystemWatchers from CoreFX The FSEvent CoreFX watcher becomes the new default for MacOS.
* mono/mono@872c0488308 [wasm] Add a missing dependency in wasm.
* mono/mono@8facc4afb2c [System]: Use new `WebCompletionSource` instead of `TaskCompletionSource`. (#7293)
* mono/mono@dfe6e2d4a2c Merge pull request #7321 from mono/fix-linuxarm-native-stacktrace
* mono/mono@9648645fb38 [System]: Enable some System.Net.Requests tests from CoreFX. (#7080)
* mono/mono@ce2584911fb Fix gdb not being used for native stacktraces in some cases
* mono/mono@096147d4286 [tests] Add --repeat parameter to enable runtime tests to run multiple times (#7291)
* mono/mono@a5da7b21f4b  [runtime] Implement thread info flags and get rid of tools threads. (#7226)
* mono/mono@e8141fc31da [sdb] Fix VirtualMachine.CreateEnumMirror () so it works with types from non-root domains.
* mono/mono@b8da9736209 [marshal] Use MonoClass getters in marshal.c (#7253)
* mono/mono@2f9b9142cde [msvc] Update csproj files (#7310)
* mono/mono@6ca674ed686 Update the random checking code in autoconf to this decade (#7250)
* mono/mono@b1801b78044 Always enable explicit null checks for AIX (#7300)
* mono/mono@31c03a9cbe7 [System.Windows.Forms] Remove dependency on Hwnd objects outside of XplatUI code. (#7243)
* mono/mono@6ac20034175 bump nunitlite
* mono/mono@216b5c5db8b Merge pull request #7286 from lambdageek/fix-gh-7095
* mono/mono@909b30b5ba0 [wasm] Fix v8 provisioning. (#7244)
* mono/mono@cfaa28e1d81 [threads] Reduce race window with async abort (#7274)
* mono/mono@f901c70548b [runtime] Don't assert in mono_class_is_assignable_from on iface gtd
* mono/mono@8d37ddbf1dd [runtime] Use MonoClass getters in a few small files (#7254)
* mono/mono@375304d501f [test] System.Type.IsAssignableFrom of gtd array special interfaces.
* mono/mono@d63e8b6f5ae [corlib] CompareInfo from CoreFX (#7272)
* mono/mono@c152f67574c Merge pull request #7263 from filipnavara/swf-carbontests
* mono/mono@de8dc8311da Merge branch 'master' into swf-carbontests
* mono/mono@ffbb3d90aee Merge pull request #7234 from filipnavara/swf-painteventend
* mono/mono@5705b3d2070 Update CODEOWNERS
* mono/mono@905077f90fc Add zlib.lib/zlibstatic.lib in Windows VS mkbundle build when using -z argument.
* mono/mono@d69c1568f62 Remove mention of MONO_THEME from man page. (#7282)
* mono/mono@dabdacd99b4 [metadata] Cache GenericParamInfo for anonymous gparams in MonoImage (#7155)
* mono/mono@94f8dcf102d [wasm] Add LTO release configuration. Saves 15% of binary size. (#7221)
* mono/mono@ba40177a44c Merge pull request #7269 from filipnavara/swf-theme-obsolete
* mono/mono@8ebc608febb [Tailcall] Add 11 tests that are all runnable, never crash, are self checking. (#7232)
* mono/mono@120be0fa4e6 Remove obsolete Nice theme code.
* mono/mono@e2e66cb4f8f [wcf] use ConcurrentDictionary for wait handles (#7265)
* mono/mono@8739c9b05a5 Bump api-snapshot
* mono/mono@5aafe83bbdd Activate MDI child windows after showing them (fixes 7 unit tests failures).
* mono/mono@cb48d78dc66 Return dummy value in XplatUICarbon.IconSize to let System.Windows.Forms.SystemInformationTest.IconSizeTest pass.
* mono/mono@091595f3d8f Fix the default font value in test.
* mono/mono@0d524452c54 Make XplatUICarbon.SetFocus send messages synchronously, fixes 9 unit tests.
* mono/mono@bb99dcade28 Fix windows creating, destroying and message processing in Carbon driver to be stable enough not to freeze the test suite.
* mono/mono@cde44408a4a Spit out the name of a test along with the error about undisposed forms.
* mono/mono@0a2d57ed674 Call XplatUI.PaintEventEnd when an exception happens in OnPaint.
* mono/mono@931380017f7 Unregister thread exception handler at the end of test.
* mono/mono@0129c25e435 [tests] Use RemoteExecutor from corefx
* mono/mono@335ca28eaf9 [llvm] Pass only the imt argument if both imt and rgctx arguments are required.
* mono/mono@c99ac6a87e5 Add missing XplatUI.EndLoop call.
* mono/mono@a974057d929 [sdks] Merge mxe-Win32 and mxe-Win64 targets since we are building both in XA anyway
* mono/mono@1af92912945 Fix layout of ColorDialog on systems with different window border sizes.
* mono/mono@657c7637fb2 Fix typo in implementation of Disposing property.
* mono/mono@67e557fa2e3 Handle more special keys in KeysConverter to ensure compatibility with designer generated resource files.
* mono/mono@6d889314b2e Remove obsolete theme code (disabled by commits 910c669 and 93724d2) and the last remaining usage of MONO_THEME environment variable.
* mono/mono@67c1708677a Add PointerValue.Value to dereference and access pointer value. (#6840)
* mono/mono@9bbe5e5e5f8 Bump API snapshot submodule
* mono/mono@392d3452f24 [System.Net.Http] Better exception message for invalid header value
* mono/mono@798c5efa52a Fix bug 18941: Marshal.OffsetOf and Marshal.SizeOf return incorrect results (#7142)
* mono/mono@bfdbc1e6768 Update the method signatures in the new X11 backend.
* mono/mono@1f0fc93de4c [sgen] Check if we are exceeding the worker count limit (#7180)
* mono/mono@12cbe9a7bd2 [msvc] Update csproj files (#7238)
* mono/mono@d45fb4e882f Fix xamarin-android issue 1130 and add test (#6326)
* mono/mono@a32ca3e2c28 [tests] Avoid false pinning in weak-fields test
* mono/mono@1e9816a10e9 [tests] Avoid false pinning in tests
* mono/mono@38846ee7548 Properly handle non-quoted multipart content dispositions
* mono/mono@bf12b6318af Simplify System.Windows.Forms XplatUI code by adding PaintEventArgs parameter to PaintEventEnd.
* mono/mono@9c55770f3fd [icall table] add ldflags for bitcode
* mono/mono@a9aa188ab22 Make field tokens sequential in SRE. (#7055)
* mono/mono@1804219600c [xbuild] add property that is available in msbuild (#7223)
* mono/mono@03371921a18 Problem building on Arch linux #7200 (#7230)
* mono/mono@481827b6af1 [runtime] Don't prepend '0x' to %p-formatted numbers.
* mono/mono@5eb41919438 [build] Remove multi stage build from Mono.Security (#7171)
* mono/mono@218ffb98835 Merge pull request #7225 from alexischr/bump-bockbuild
* mono/mono@2b068cb5a44 Fix some enable minimal. (#7195)
* mono/mono@ca47362a921 Fix mono_arch_setup_async_callback and add mono_arch_setup_resume_sighandler_ctx on PPC (#7159)
* mono/mono@6e0c91f0533 [interp] add another signature for interp_in wrappers
* mono/mono@c382b03fd51 [coop] Rename mono_threads_is_coop_enabled to convay better its semantic (#7178)
* mono/mono@8900231c8b0 [mini] More minor JIT cleanups. (#7130)
* mono/mono@983966c7ca1 [bockbuild] Detect HTTP errors  when using curl
* mono/mono@0a8126c2094 [WASM] Implement timers. (#7193)
* mono/mono@f0b78251899 Updates to support building the BCL using Visual Studio 2017 on windows (#6877)
* mono/mono@123d086e27e Merge pull request #6892 from lambdageek/use-getters
* mono/mono@c1cbe060f61 Merge pull request #7218 from mono/revert-6018-fix_10087
* mono/mono@49a1c8423cd Disable a flaky test on Windows https://github.com/mono/mono/issues/7199
* mono/mono@199dad7e84e Revert "Run the ProcessExit events in the threadpool and enforce a 3 seconds limit. Fixes #10087"
* mono/mono@72e5ca60b89 [msvc] Update csproj files
* mono/mono@c6f91eaa58c Fix unknown-length requests being treated as if they are fully preloaded. (#6822)
* mono/mono@119cf5259e9 [aot] Emit the same instances in hybrid aot mode as in full aot mode.
* mono/mono@f90612e047e [bcl] Comment/stub out some unused icalls to prevent problems with AOT. (#7183)
* mono/mono@3addbfe6279 Merge pull request #7181 from mono/bockbuild-download-using-curl
* mono/mono@8a52f590fc4 Bump bockbuild for https://github.com/mono/bockbuild/pull/62
* mono/mono@d4816ef1abc [System.Xml] Remove reflection calls for value has to be set
* mono/mono@8ce0775a031 [jit] Disable partial sharing during JITting, its only been tested in full aot mode, and doesn't seem to work with JITted methods. (#7161)
* mono/mono@2d2033e4401 Use proper sized integer for ioctlsocket on Win32. (#7153)
* mono/mono@89804e62bbd [mono-api-html] Expand "ignore" functionality (#7154) (#7175)
* mono/mono@df273181b52 Merge pull request #6018 from kumpera/fix_10087
* mono/mono@03b6095e3eb [runtime] Magic interfaces requires the complex stelemref to handle arrays. Fixes gh #6266 (#7038)
* mono/mono@761ddc60f9d [corlib] Make MissingMember exceptions working again after #6123
* mono/mono@735337d5e68 [metadata] Implement MONO_CLASS_IS_INTERFACE(c) in terms of public API
* mono/mono@bae5cd2d6e0 [metadata] (class.c) Use MonoClass getters
* mono/mono@f6364860459 [metadata] add missing MONO_ENTER/EXIT_GC_SAFE guards around access(2) in is_file_writable (#7126)
* mono/mono@d2383c037df [corlib] Support terminals without color support
* mono/mono@705223f6d55 [interp] Use frame_addr as base pointer in more places (#7128)
* mono/mono@5b0503a5b39 [profiler] Some minor housekeeping. (#7123)
* mono/mono@ec2faf03880 [wasm] Fix master and add sample. (#7160)
* mono/mono@ad03afd96ed [msvc] Update csproj files (#7173)
* mono/mono@a85911f480e Merge pull request #6034 from alexischr/bug-59400
* mono/mono@8658bb6048f [build] Don't add specific support file to all xunit test builds (#7163)
* mono/mono@a19fad65f3f Fix copyright
* mono/mono@7de96dd4121 Merge pull request #7150 from alexischr/bug-46473
* mono/mono@5fabb059cfc Add Mono-specific System.Net.Test.Common.Configuration.Http. (#7156)
* mono/mono@d7551cc9bf0 [metadata] Improve error message for loading unresolved types (#7147)
* mono/mono@2837f433d94 [corlib] Fix RuntimeFeatureTest.NoNewFeaturesAdded on mobile (#7149)
* mono/mono@1426d6a8da8 [remoting] Synchronize serializer/deserializer usage for call data. Fixes #46473
* mono/mono@18e274b14b7 Bump corefx submodule
* mono/mono@045acb8f198 [jit] Handle more cases for gsharedvt constrained calls. (#7081)
* mono/mono@3b8ec9e97b1 [wasm] Fix the port to work with the latest version of emcc. (#7091)
* mono/mono@eef0801f3e3 Assorted fixes for AIX and i (#6934)
* mono/mono@38989b012ff [Coop] Convert many simple mono_object_new_checked to mono_object_new_handle. (#7129)
* mono/mono@dd4dbd8d4b1 [System.ServiceModel] Prevent crash in Dispatcher.ListenerLoopManager… (#7136)
* mono/mono@1791e50b56b [class] Fix resolution of interfaces in classes implementing IEnumerator. Fixes #59400
* mono/mono@7b120ae2d46 [msvc] Update csproj files (#7140)
* mono/mono@98cadff5f6a bump nunit-lite
* mono/mono@ecadc6cf319 [wasm] Make .stamp-depot-tools more reliable. (#7078)
* mono/mono@9b1e845740d [corlib] order sources content
* mono/mono@bf3ed7115b2 [corlib] Add System.Runtime.ProfileOptimization APIs (#7120)
* mono/mono@6a01a0b314b WinForms: Enable external CocoaDriver external driver (#7100)
* mono/mono@a65c354f7b2 Bump api-snapshot submodule
* mono/mono@4d52a10ca04 [mini] Move some arch-specific interpreter logic into backends and provide stubs.
* mono/mono@4358581865b [mini] Don't use arch_target to point to arch/ subdirs.
* mono/mono@e9c51fa3e5f [mini] Use a MONO_ARCH_INTERPRETER_SUPPORTED define instead of checking archs in driver.c.
* mono/mono@23acd0f78be Fix for XA integration
* mono/mono@7da8b503c6d [msvc] Update csproj files
* mono/mono@f6a6779ff5b [corlib] CoreRT System.Threading.Tasks (#6672)
* mono/mono@ed951069656 Coop/handle conversion of ByteArrayToCurrentDomain and ByteArrayToRootDomain. (#6692)
* mono/mono@c4d1da6ef3c [master] [sdks] Fix for XA integration (#7103)
* mono/mono@a7ed34f4db6 Centralize handle-based post-object creation code. (#7096)
* mono/mono@79ef9d5105d Fix race condition in mono_thread_execute_interruption.  (#6833)
* mono/mono@d7626e8217f [coop] Add handle-based object create functions. (#6876)
* mono/mono@aec2773e1db Revert "[System.Drawing] Disable tests except on ARM64 (#6909)"
* mono/mono@83ed33ba2c0 [Coop] Convert Console to Coop/Handles. (#7060)
* mono/mono@b043ff5f747 [aot] Bump aot file format version because of 7cac757e60cd61aa070f7e0fffca225364f58c0c. (#7079)
* mono/mono@ded74c0b12a Use the preallocated domain->out_of_memory_ex instead of allocating. (#6819)
* mono/mono@52514effbf1 [marshal] For generic method icalls, handle generic param arguments when using coop handles
* mono/mono@e01355eead8 [Cplusplus] Fix possible race condition and add casts between void* and function pointers. (#6871)
* mono/mono@9209ea06298 Merge pull request #7073 from mono/disable-test-sleep
* mono/mono@cfa087bfd74 [aot] Rename mono_aot_get_method_checked () to mono_aot_get_method (), there is no non-checked version anymore. (#7071)
* mono/mono@e2419dee784 [interp] Add missing exception checkpoints (#6917)
* mono/mono@1028994a882 Disable a flaky test on PRs (https://github.com/mono/mono/issues/6999)
* mono/mono@cf644472f9f [msvc] Update csproj files (#7070)
* mono/mono@23e6f6f4b58 Revert "[jit] Make some JIT regression test files compile in the mobile profile (#7059)" (#7069)
* mono/mono@b7385ba797b [sdks] Add targets for the watch cross compiler. (#7061)
* mono/mono@fc7bda62d35 [coop] Convert some `mono_exception_*` functions Reduce managed exposure in utils a little.
* mono/mono@e2874db5227 [jit] Make some JIT regression test files compile in the mobile profile (#7059)
* mono/mono@ea1fac3d898 [coop] Remove unnecessary write barriers against thread locals and cleanup a little. (#6874)
* mono/mono@3bd630eba79 [mkbundle] Automatically bundle config files and machine.config files (#7002)
* mono/mono@b90d8ec387a Remove GetNLSocket which is unused and produces a warning because it is unprototyped. (#6691)
* mono/mono@4a83009a036 WSL does not nul terminate uname.release. memset(0) it first. (#7023)
* mono/mono@8d826997362 Merge pull request #7057 from lewurm/interp-disable-flaky-pinvoke-test
* mono/mono@62bf8bd4d52 [System.ServiceModel.Activation] Move ServiceHostFactory.cs where it's used (#7044)
* mono/mono@2322177e6ae [interp] disable flaky pinvoke test
* mono/mono@8ad191dfbb2 mono_get_exception_runtime_wrapped_checked contains an unnecessary 16 (#6659)
* mono/mono@20e69fa1996 Centralize post-object creation code in mono_object_new_common_tail. (#6903)
* mono/mono@a33cbb873c4 [interp] Fix native to interp transition (#6868)
* mono/mono@7cac757e60c [aot] Emit the weak field indexes table using the MONO_AOT_TABLE code, so it works with separate aot data files/bitcode.
* mono/mono@8c90350d114 Add denied assembly versions from previous ms extensions nugets
* mono/mono@47187bbc9b5 [Mono.Posix] .NET Core compatibility - Use [In,Out] for arrays of structures
* mono/mono@57f3f34e60e Revert "[coop] Remove support for invoke thunk wrapper" (#6927)
* mono/mono@8d19e5a1c59 [runtime] Unboxing of nullable enums should throw for boxed ints. (#6958)
* mono/mono@8f35227b886 [debugger] disable StepOutAsync test because it's flaky
* mono/mono@545191f7732 Pass null-terminated string for logging
* mono/mono@2c1f45f3791 [TermInfo] support new file format terminfo2 introduced with ncurses6.1 (#6960)
* mono/mono@3012ce06e43 Update F# to 4.1.33
* mono/mono@ff989895794 [runtime] Avoid recreating the icall table in lookup_icall_symbol (). (#6988)
* mono/mono@17b4b28f050 [sdk] Fix the invocation of run-step.sh, the --timeout argument is mandatory. (#7013)
* mono/mono@3fdbbe5e44b [sdks] Fix the tar command since the llvm binaries are in different directories now. (#7010)
* mono/mono@f4d3da6d4ac [runtime] Fix merge conflict and Move code to its right place.
* mono/mono@c3c6e6c9cdf [runtime] Ignore FireProcessExit if the method is missing on corlib.
* mono/mono@b9b08c0d02e [runtime] Implement a domain resistant version of mono_domain_foreach and switch the unloading code to use it.
* mono/mono@755c5bd7137 [runtime] Fix docstring for mono_unhandled_exception_checked.
* mono/mono@4f8968cf6c9 [corlib] Fix minor style issue.
* mono/mono@1fd32df7d1a [runtime] Introduce a non-fatal unhandled exceptions and use it for AppDomain::ProcessExit.
* mono/mono@c9c7dad3a3a Bump mono/NUnitLite
* mono/mono@dd2c320aa39 [runtime] Change domain before firing ProcessExit.
* mono/mono@7500341ec03 [runtime] Run the ProcessExit events in the threadpool and enforce a 3 seconds limit. Fixes #10087
* mono/mono@6e28ccb4e5b [utils] Add "exec" log category for misc runtime activity.
* mono/mono@96f2d163a33 Merge pull request #6970 from dsyme/patch-1
* mono/mono@e52ef6aedd1 [build] Fixes monolite build (#6982)
* mono/mono@36cbab657f4 [msvc] Update csproj files
* mono/mono@f61bc393d34 Simplify MonoError and managed Exception creation (#6123)
* mono/mono@60d4907f48e [runtime] Revert mkbundle defaulting behavior made in ca8b8bd346 (#6687)
* mono/mono@d8d3e29f382 Bump api-snapshot
* mono/mono@03549126030 Bump F# mono version to 4.1.32
* mono/mono@d573dec96ea Bump linker and update linker-analyzer references
* mono/mono@d6e74834549 [interp] Fix CEE_UNBOX
* mono/mono@7a528f6f97d [sre] Unlock loader lock on error paths (#6951)
* mono/mono@e572acca552 [ci] Only create artifacts.json GitHub status on release branches
* mono/mono@939d7207708 [ci] Disable monodoc tests on Windows for now
* mono/mono@ea7b3849c48 Cleanup recent JIT fix to get it done in the right place. (#6895)
* mono/mono@29d402d8e0d [handle] Have `MONO_HANDLE_*` macros use a uintptr_t instead of int (#6906)
* mono/mono@25c41cbf419 Fix gshared support for default interface methods by always passing an mrgctx to them. (#6935)
* mono/mono@1c631424d26 Merge pull request #6929 from mono/disable-test-TaskCancelWait1
* mono/mono@dcecd8ff83b Disable flaky test
* mono/mono@b97d0c43d1c [System]: WebConnection.Connect() needs to probe all IP addresses.
* mono/mono@e43adf3cd5a Change mono_thread_resume_interruption to return void, one less raw pointer to worry about. (#6690)
* mono/mono@c944c358f13 [scripts] Fix scripts/update_submodules.sh for use with git worktree
* mono/mono@7f9167bc5b6 [runtime] Fix the --enable-icall-symbol-map build. (#6943)
* mono/mono@921132a3622 [runtime] Make icall tables loadable. (#6905)
* mono/mono@d8beb3ef110 [profiler] Remove obsolete code coverage support from the log profiler. (#6896)
* mono/mono@48898cb810c [sdks] Fix ios+llvm. (#6939)
* mono/mono@7f47f190859 [runtime] Fix a warning. (#6937)
* mono/mono@b970e766fad [interp] Add class failure checks
* mono/mono@52ebab86031 [interp] Fix varargs passing
* mono/mono@3369b6e2143 [interp] Align vt stack in some places
* mono/mono@6ffa48f6ada [interp] Add define for value type alignment
* mono/mono@9f2b8595a34 …
luhenry added a commit that referenced this pull request Aug 10, 2018
Commit list for mono/mono:

* mono/mono@f3a2216b65a backport #9800 to 2018-04
* mono/mono@07ac0897350 Bump msbuild to track mono-2018-04 (#9834)
* mono/mono@d31dbe843a5 Apply F# portable pdb debug fix for pinvokes & bump (#9798)
* mono/mono@a4ac6282675 [corlib] Disable comparer xunit tests because we are still running referencesource version on mobile
* mono/mono@4f10cd10272 [corlib] Disable broken corefx tests
* mono/mono@16538b28e36 [TermInfo] fix reading integer value for new file format
* mono/mono@e92217aad3c Bump bockbuild
* mono/mono@b25c7135046 [llvm] Avoid using the preserveall calling convention in another place on watchos. (#9579)
* mono/mono@ebc0c7c2156 Fix LogcatTextWriter_Log interpreting messages it logs, potentially writing random garbage and/or crashing (introduced by https://github.com/mono/mono/commit/984f6484666c2ee6fefec949c81fdff1189c9488) (Fixes https://github.com/xamarin/xamarin-android/issues/1951) (#9614)
* mono/mono@d851c21b1fc [runtime] Make sigterm dumper send file to merp (#9608)
* mono/mono@d4a680b045c [arm64] Make OP_CHECK_THIS read only a byte, to prevent unaligned access errors. (#9545)
* mono/mono@0d29bd39f11 Merge pull request #9484 from alexanderkyte/2018-04-merp_params
* mono/mono@2e6757dae96 [sdk] Do not fix android platform-tools version. Make it configurable. (#9509)
* mono/mono@6a7c7f68535 [runtime] Enable application to register path for MERP restart
* mono/mono@ba63aa3589c [runtime] Make merp eventType icall argument
* mono/mono@9d4d9a86686 [Coop] Convert Mono.Runtime to coop. (#8599)
* mono/mono@c95a4a2d2c5 [llvm] Avoid using the preserveall calling convention on watchos, xcode10 asserts on it.
* mono/mono@5f411d96967 Merge pull request #9445 from monojenkins/backport-pr-9440-to-2018-04
* mono/mono@c03434f8f42 Add another Darwin file system
* mono/mono@9d69811fd6d Bump bockbuild
* mono/mono@2389814c3ca [runtime] Fix the --enable-minimal=aot build. (#9393)
* mono/mono@5a3352aba2f [interp] fix scope issue regarding `klass` var (#9377)
* mono/mono@0a4c7bb91bf [mini] add workaround for AMD Ryzen Threadripper issue (#9357)
* mono/mono@33b8e6c418e [build] Skips RemoteExecuted bases tests on monodroid
* mono/mono@c060398eaed [2018-04]  [sdks] Only rebuild MXE when it doesn't exist, not when we just cloned the sources (#9365)
* mono/mono@095dbce56fe Merge pull request #9329 from monojenkins/backport-pr-9274-to-2018-04
* mono/mono@c2f12ea8648 Bump linker
* mono/mono@d0bb0ce89fa [System]: `HttpWebRequest` now throws `WebExceptionStatus.RequestCanceled` on abort. (#9212) (#9304)
* mono/mono@18080dc75a8 [merp] Change XML file output path
* mono/mono@872843aa92e [merp] Change and emit event type
* mono/mono@3645833a7a4 [runtime] Make mono-state dumper abandon stuck threads (#9260)
* mono/mono@5e8001a4ff6 [2018-04] [runtime] Package merp params in 3 ways needed (#9268)
* mono/mono@639ca72904d [interp] make interp-only mode work again on 2018-04, mixed mode changes broke them. we need to fix it properly on master
* mono/mono@d68cb85dc64 [2018-04] [interp] fullAOT mixed mode (#8838)
* mono/mono@6f5656ea86e [interp] add FULL_AOT flags to AOT image when `--aot=interp` is used
* mono/mono@33f6b1d2497 [aot-compiler] use mono_aot_mode_is_interp instead of directly using the flag
* mono/mono@8ae8c52383b [System]: Fix bug in `WebResponseStream.GetResponse()` that will make some people happy.  #9228. (#9244)
* mono/mono@c87ebef727a Bump msbuild to track mono-2018-04 (#9241)
* mono/mono@f22c8b706eb [loader] LoadFrom of problematic images should reprobe (correctly)
* mono/mono@9d43da2ebf4 [profiler] account for nullbyte in allocated buffer
* mono/mono@3737edb8819 [corlib] Allow DM with an extra param to have the first one bound to null. Fixes #9033.
* mono/mono@07c8f25fe53 [interp] check existence of InterpMethod before removing it from interp code hastable
* mono/mono@335e62c3a02 [packaging] Ignore Mac path in MSBuild .targets file during check
* mono/mono@36fe14548c4 [Linux,XA build] Fix building of Windows cross-compilers on Ubuntu Linux (#9173)
* mono/mono@6de3d54a245 [SDKS,Android] Install cmake when provisioning Android SDK (#9139)
* mono/mono@cb54c26f6c8 Bump bockbuild to fix environment variables expansion bug (#9178)
* mono/mono@569bd3bc52f Revert "[loader] LoadFrom of problematic images should reprobe" (#9112)
* mono/mono@1f44e26ab4f Remove ServiceControllerTest.cs. Mitigates https://github.com/mono/mono/issues/9002.
* mono/mono@7b9563bc1c8 [profiler] Don't raise events until the profiler transitions to the ready state. Fixes #8866.
* mono/mono@615252ca70b update to Android P final API. (#9077)
* mono/mono@47fe82d812c Merge pull request #9018 from monojenkins/backport-pr-8092-to-2018-04
* mono/mono@0fd16dfa237 Merge pull request #9001 from monojenkins/backport-pr-8348-to-2018-04
* mono/mono@56521df97b1 [arm64] Fix llvm jit support.
* mono/mono@e129a25c91c [System.Runtime.Serialization] Makes more APIs work for mobile
* mono/mono@543b6872feb Bump msbuild to track mono-2018-04
* mono/mono@ed7cb7a6b7f [runtime] Add llvm aot mode with graceful fallback
* mono/mono@33a9dca4932 Add PowerPC configure flags for LLVM, and clean up failover linker flags (#8996)
* mono/mono@7008c37886e Merge pull request #8992 from monojenkins/backport-pr-8285-to-2018-04
* mono/mono@854f3e29524 [mono-api-html] Fix markdown diff which was reversed
* mono/mono@c54cae3345e [bitcode] Fix the generation of invalid llvm IR for some Span code.
* mono/mono@5d60a2b8432 [mono-api-html] Update tool to optionally output markdown
* mono/mono@1f3334fd93a Merge pull request #8974 from mono/backport-fix-gh-8712-to-2018-04
* mono/mono@23c06f5e547 Merge pull request #8973 from monojenkins/backport-pr-8813-to-2018-04
* mono/mono@9def5c0a11a [System.IO] Dispatch events asynchronously in FileSystemWatcher.DispatchEvents()
* mono/mono@c903094761a [System.IO] Prevent the CoreFX bridge from even try-entering a monitor.
* mono/mono@462f5112228 [System.IO] Finish initializing all FileSystemWatchers, not just the first one
* mono/mono@a08e664e4ce [System.Windows.Forms] fix PropertyGrid
* mono/mono@2987232bc14 Merge pull request #8953 from directhex/fix-2018-llvm
* mono/mono@5ddc0c5fdf9 Fix building of LOADED_LLVM on Linux, from duplicate eglib linking (#8287)
* mono/mono@b2ded076c9d [build] Includes tools used by XI/XA build CI in build profile
* mono/mono@fa9903bcc1d [2018-04] Finalize merp integration (#8870)
* mono/mono@820bff26b3b [2018-04] Sanitize TLS handling in the profiler. (#8881)
* mono/mono@6d28c8f9621 Bump API snapshot submodule
* mono/mono@b2cac0129fe Bump cecil
* mono/mono@8c55e41d50f Bump linker to resolve XA issues
* mono/mono@ba806e58df0 [runtime] Gracefully handle crashes before mono-state dependencies initialized (#8843)
* mono/mono@0e0bf762eda [corlib] Update TaskFactory tests to accommodate running on different sync context
* mono/mono@46e3bd5099f [corlib] Disables test which depends on LogicalCallContext for mobile (#8835)
* mono/mono@67c1e412e2b [monitor] Fix abort of synchronisation wrapper (#8828)
* mono/mono@b705cec3c73 Merge pull request #8836 from monojenkins/backport-pr-7412-to-2018-04
* mono/mono@a18994cc412 [MacSDK] Update Nuget to 4.7.0
* mono/mono@efe1fdeb9de [loader] LoadFrom of problematic images should reprobe
* mono/mono@993fc87b3f9 [debugger] more locking and avoid race around mono_threads_join_lock & loader lock
* mono/mono@737ecd10338 [debugger] Add locking around tls->frames usage/freeing
* mono/mono@09855094c15 [android] Fix truncating of messages longer than 4096 characters (#8762)
* mono/mono@419d3136fe9 mkbundle interop changes
* mono/mono@97101d40aac don't fail on unsupported ipv6 in BeginConnect
* mono/mono@4785686a4de Backport "Implement Freeform Unmanaged Error" to 2018-04 (#8688)
* mono/mono@61c25c4e10e Added corlib .sources files for the ORBIS profile (#8786)
* mono/mono@99fedb1741f [aot] Fix encoding/decoding of types with custom modifiers. (#8729)
* mono/mono@32ae8ad5288 Bump bockbuild to get Pango patch
* mono/mono@c1ef203b2ca [corlib tests] improve ThreadPrincipalTests regarding SynchronizationContext (#8761)
* mono/mono@a7160188e5c [ci] Fix URL for apidiff/csprojdiff report
* mono/mono@ef73a4955df Bump bockbuild to pull in GTK userSpaceScaleFactor deprecation warning fix
* mono/mono@769481d834c [Mono.CSharp] Mimic the settings from System to track the feature flags, fixes GitHub #8698 (#8706)
* mono/mono@4e47c8dfdca Bump msbuild to track mono-2018-02 (#8683)
* mono/mono@c4492e09495 Merge pull request #8656 from monojenkins/backport-pr-8438-to-2018-04
* mono/mono@ab6962b1838 [System] Add regression test for #8417.
* mono/mono@ad1a10e4a41 [System] When doing process redirect, use Console.OutputEncoding instead of Console.Out.Encoding. Fixes #8417.
* mono/mono@ecf6b882051 Bump msbuild to track mono-2018-02 (#8631)
* mono/mono@f3577389f6d Merge pull request #8595 from monojenkins/backport-pr-8580-to-2018-04
* mono/mono@9a4c8f33987 nuget-hash-extractor: Add msbuild extensions nuget version from
* mono/mono@f42debee5ee nuget-hash-extractor: Add msbuild extensions nuget version from
* mono/mono@9ca82d47eea nuget-hash-extractor: Add `all` option to emit all 3 lists
* mono/mono@ce195600a3f nuget-hash-extractor: Improvements for better, deterministic output
* mono/mono@da473eaff56 nuget-hash-extractor: Sort the lists for easier reviews
* mono/mono@858aa226dc4 [native types] fix nfloat:NaN on arm64 JIT and interp (#8565)
* mono/mono@fd09fd9d444 [sdks] fix $(mktemp) usage on older versions of macOS (#8521)
* mono/mono@12a21428529 [2018-04] [arm64] Interp entry trampoline (#8484)
* mono/mono@c7b237f1be7 [2018-04] [interp] Enter in the interp through a single generic trampoline (#8453)
* mono/mono@0ebfd3e385a Merge pull request #8471 from monojenkins/backport-pr-8306-to-2018-04
* mono/mono@50d84a37193 Only show config.log when running on bots.
* mono/mono@3e566852dc4 [sdks] Wrap configure to provide better output.
* mono/mono@61fa43b9099 Merge pull request #8423 from luhenry/backport-pr-8411-to-2018-04
* mono/mono@196ea0219b3 Merge branch '2018-04' into backport-pr-8411-to-2018-04
* mono/mono@b7db3364a0d [2018-04] Backport float32 changes. (#8398)
* mono/mono@20ae78fcc83 Merge pull request #8394 from monojenkins/backport-pr-8318-to-2018-04
* mono/mono@a5af7f28dc3 [arm] Fix a regression introduced by: (#8414)
* mono/mono@869e019e158 [mini] Add regression test for punting a type system check.
* mono/mono@3ddda667e12 [mini] Don't verify types if you store to a pointer byref. Workarounds #8403.
* mono/mono@599f3dd3afe [watch] Align cinfo->stack_usage to 16 on watchos. (#8375)
* mono/mono@efdd8353ed3 [packaging] Apply F# patch that fixes #8310 (#8400)
* mono/mono@cf3e776887f [2018-04] [runtime] Add a signal handler for sigterm (#8384)
* mono/mono@38ffddd6c74 [runtime] Set the error if the class has a failure.
* mono/mono@f2943b182aa [runtime] Use m_class_has_failure ().
* mono/mono@584b77e4024 [runtime] Handle failed classes in mono_type_get_checked (). Fixes https://github.com/mono/mono/issues/8311.
* mono/mono@34bb601d181 [sdks] Match more closely the pre-SDKs configure flags passed to LLVM (#8381)
* mono/mono@b759166b96e [System.Net] do not use Thread for SocketTest.TestSelect1 (#8368)
* mono/mono@b7015d6fd2e Merge pull request #8336 from monojenkins/backport-pr-8302-to-2018-04
* mono/mono@68f94932b7b Remove unused signal.h include in interp.c
* mono/mono@de3c8c587a6 [corlib] Disable failing test on XA (#8353)
* mono/mono@766778b5453 Fix mono_perfcounter_instance_exists to match prototype when #ifndef DISABLE_PERFCOUNTERS.
* mono/mono@3693fb14f4b [sdks] Fix mktemp parameters (#8323)
* mono/mono@98a3dd7f34a [corlib] Fix TimeZoneInfo.Local when /usr/share/zoneinfo is a symlink (#8305)
* mono/mono@32ba15ee0be [corlib] SynchronizationContext does not work on non-root AppDomain on Android (#8297)
* mono/mono@0931f21c4c5 [w32file-unix] fix mistake in 8430155946c31f0f3f5f04017eebd79ac15e566d (#8300)
* mono/mono@85e13e6e2f0 [2018-04] [runtime] Add public API to set the pending exception. (#8279)
* mono/mono@d835b7d55f0 [2018-04] Fix timestamp for file copy (#8248)
* mono/mono@1d946e0f389 [sdks] Fix typo + Fix verbosity of unzip-android-archive.sh (#8244)
* mono/mono@bfa85bcaaa0 [msvc] Update csproj files
* mono/mono@ecd24fa6b53 Merge pull request #8204 from monojenkins/backport-pr-8202-to-2018-04
* mono/mono@eee8ff7cfc3 [system.net] disable some tests to unblock XI integration
* mono/mono@99a992605f0 [System.Net.Http] Use '*' as the host instead of '+' in the tests. Fixes xamarin/maccore#673.
* mono/mono@13aa6b71992 [eglib] GMarkup: allow all ASCII NameStartChar and NameChar except ':'
* mono/mono@3472efcdf98 [sdks] Add ANDROID_BUILD_TOOLS_DIR to differentiate it from ANDROID_BUILD_TOOLS_VERSION (#8194)
* mono/mono@1029de31472 [sdks] Fix typo (#8188)
* mono/mono@28597809271 [corlib] Make more crypto oids work on mobile profiles when not linked out
* mono/mono@61ab3f7a341 [2018-04] [sdks] Add support for building llvm unless the USE_PREBUILT_LLVM Make.config var is set. (#8148)
* mono/mono@6d5d7b57f22 [interp] support r4 (single) in stelem instruction
* mono/mono@f710b2c8e5d [llvm] Increase the inline limit when using llvm in jit mode. (#8167)
* mono/mono@e50ce8ad663 [mcs] Fixes parameter check for interface types used with default parameters
* mono/mono@b8187777055 [System] Don't use http://www.mono-project.com for test (#8147)
* mono/mono@05ed822a484 [corlib] Implements CryptoConfig::AddAlgorithm on all profiles
* mono/mono@0a5fdb5841f [2018-04] [Facades] Add System.Drawing.Common on mobile only (#8129)
* mono/mono@13183bc82b9 [2018-04]  [corlib] Enable machine.config dependant version of CryptoConfig for net_4_x profile only (#7974)
* mono/mono@147e34f2542 [mcs] Adds private protected modifier to the parser only
* mono/mono@561092003ca [w32file] Fix memory leak (#8113)
* mono/mono@6cdbc561fca [sdks] Fix arguments passed to llvm on Linux (#8110)
* mono/mono@0dba58a7345 [2018-04] more iOS sdk backports  (#8063)
* mono/mono@c0af9ad2cc9 [mcs] Fixes codegen when probing reference type expression is known to pass and pattern variable has to be created (#8086)
* mono/mono@88b6094e06c [System] Disables compiled regex (#8088)
* mono/mono@4fbdeebbe8a [mcs] Implements C# 7 digits separators (#8098)
* mono/mono@bd8731da012 [interp] use same domain as transform phase to register debug data for a method
* mono/mono@ea838e84f1b [SDKS] fix Linux (and possibly other OSes) build for Android (#8043)
* mono/mono@c3ae712ab13 [mcs] Implements C# 7.2 stackalloc span conversion in conditional expression
* mono/mono@7af9ad8cdb6 [interp] workaround undefined behaviour in r8 to u1 cast
* mono/mono@5921faad1cd [runtime] Fix --disable-btls.
* mono/mono@4bad0d67655 [mcs] Implements C# 7.2 conditional ref expression
* mono/mono@b0aaec8e96b [interp] do not bake object reference into code stream
* mono/mono@e0b0a87e65f [sdks] Use wget in place of curl, it's installed by default on Linux (#8059)
* mono/mono@b8fb7b5e18d [System]Fix memory leak in the web stack related to `Task.Delay` (partial fix of #7356).
* mono/mono@8a20f0dfffb [SDKS] Fix Android SDK build on Linux (#8024)
* mono/mono@04529e90e24 [interp] fix i4<>i8 conversion for builtin types, it was inverted (#7987)
* mono/mono@83d7bc1a0cd [sdks] Fix MXE_PREFIX for XA (#8009)
* mono/mono@d1c10f86936 [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. (#7971)
* mono/mono@e9b1c90e9d5 [2018-04] [sdks] Add provisioning for Android SDK and NDK (#7978)
* mono/mono@59e6eb29e61 [2018-04] [Facades] Add System.Memory facade to mobile profiles (#7968)
* mono/mono@5053d17e50f Bump version to 5.14 (#7954)
* mono/mono@9cd9e3b0a13 [ppc] use ucontext_t
* mono/mono@90b49aa3aeb Merge pull request #7946 from kumpera/wasm_fix_a_few_issues
* mono/mono@21a9412a676 [sdb] Fix --enable-minimal=soft_debug build. Fixes #7920. (#7945)
* mono/mono@95276e9ddb3 Merge pull request #7943 from filipnavara/corefx-sd-tests-1
* mono/mono@cdea795c0e4 [wasm] Make RuntimeInformation properly detect WebAssembly.
* mono/mono@d8648776cc6 [wasm] Bump corert to pick fix for TaskCreationOptions.LongRunning. Fixes #7864.
* mono/mono@106ef365e31 [wasm] Disable the degraded alloc warning under wasm. Fixes #7661
* mono/mono@2bf9a42fd3a [wasm] Fix the build.
* mono/mono@5bdb87b6a67 [wasm] emcc has a broken clock_getime. Disable its usage.
* mono/mono@a810739246b Include CoreFX GraphicsPath and Region tests.
* mono/mono@4723e6603e6 Merge pull request #7915 from alexischr/fix-gh-7568
* mono/mono@2b4208feda5 [System.Windows.Forms] Set NotifyIcon.Icon in test to prevent warning
* mono/mono@a914dbf1734 [System.Windows.Forms] Dispose forms opened during two tests
* mono/mono@fcd52894d9b [System.Drawing] Remove failing jpeg flags tests (#7931)
* mono/mono@254013b0fdf [runtime] Fix class visibility check for protected nested classes. (#7907)
* mono/mono@ebef3ec4b18 [msvc] Update csproj files (#7929)
* mono/mono@2cbd1706dcc [System.Drawing] Enable corefx xunit tests (#7924)
* mono/mono@4d78aaf7b46 [genproj] When using fallback profile selection don't build the projects that were missing a profile (#7926)
* mono/mono@1931cb1dcbc [Tests] Disable hijacking.exe and Jittailcall2.exe tailcall tests. (#7922)
* mono/mono@938415c6d39 [test-runner] Don't output test result xml when no tests are run
* mono/mono@a5a496695a0 Disable building btls/ and support/ on the bcl build, they are not needed. (#7921)
* mono/mono@2e0182b5c06 Implement Field SetValueDirect on non-struct targets. Add test case from roslyn issue 19038. (#7866)
* mono/mono@88cab36c200 [sdks] add Make.config to ignore file (#7901)
* mono/mono@5c839fc1097 Bump msbuild to track xplat-master (#7900)
* mono/mono@f83fbbd9b8a [sdks] Fix LLVM build for XA (#7917)
* mono/mono@a36d08a55ac [perfcounters] fix alignment issue on 32bit
* mono/mono@1e1893d683f [System.IO] Don't throw exception when FileSystemWatcher is disposed while the backend is still trying to use it
* mono/mono@a1751d91c86 Revert "Disable some flaky tests."
* mono/mono@2c14b1f82c2 Revert "Disable a flaky test."
* mono/mono@86df754848d Revert "Disable bug-80307.exe"
* mono/mono@60707875d59 Revert "[sdks] Disable btls and support/ on the bcl build, they are not needed. (#7892)" (#7904)
* mono/mono@6f0fba8961a [Tailcall] Bring coreclr tests for tail calls to Mono source tree (#7204)
* mono/mono@765ea257723 [sdks] Fix LLVM build on Linux for XA + Fix MXE usage on non-Darwin platforms (#7910)
* mono/mono@1d36e15392d [msvc] Update csproj files
* mono/mono@81a781bb02f add some OpenBSD patches (#7699)
* mono/mono@792196320f4 [sdks] Disable btls and support/ on the bcl build, they are not needed. (#7892)
* mono/mono@573e460e97c Fix tarball build
* mono/mono@7ec24235351 [packaging] Bundle the msvc compiled monograph.exe on Windows
* mono/mono@3dad276e2d2 Bump api-snapshot
* mono/mono@77b2db73aaf Add BindingFlags.DoNotWrapExceptions (#7863)
* mono/mono@9ff460b0049 [sdks] Disable wasm on the ios sdk lane. (#7894)
* mono/mono@e70a872c533 [sdks] Fix usage of MXE for XA (#7897)
* mono/mono@5841ffff038 [System.Windows.Forms] Ignore non-visible controls when computing ScrollableControl canvas size (#4247)
* mono/mono@407e254643c [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 (#7893)
* mono/mono@6c901dbfc58 [sdks] Pass MXE_SRC from XA to use `xamarin-android/external/mxe` (#7888)
* mono/mono@ff40ceff387 check for iconv only once (#7873)
* mono/mono@e3e1fe1c16f [corlib] Moves DynamicMethod to mscorlib to work better with wasm (#7875)
* mono/mono@ada6edbad87 [bcl] Fix the compilation of System tests in the mobile profile. (#7882)
* mono/mono@2f66873ab2a [msvc] Update csproj files (#7811)
* mono/mono@753cc874f64 [jit] Add signature checking for CALLI. (#7832)
* mono/mono@ab62d30edb0 [genproj] Move obj to common folder and remove unnecessary properties (#7870)
* mono/mono@8c86a805ff7 [mcs] Updates common array bounds unification to use universal type comparer
* mono/mono@b42086d4504 Use __PASE__ for things i needs that AIX doesn't (#7858)
* mono/mono@f00eba8a7cc Whitelist illinkanalyzer in macOS package (#7861)
* mono/mono@4a247e7ed9a Merge pull request #7740 from alexischr/corefx-unknownunix-fsw
* mono/mono@03a153c7b36 Bump API snapshot submodule
* mono/mono@e6f90edfcd1 [System]: Disable the System.Net.ServicePoint tests from corefx.
* mono/mono@0f9b7f730f8 mono_perfcounter_counter_names returns incorrect names, and restructure slightly for clarity (#6355)
* mono/mono@9b36f1452f4 wcf: fix index of message body parts. Do not use MessageBodyMemberAttribute.Order as index.
* mono/mono@3c8bf90a40e [System.IO] Use CoreFX FileSystemWatcher stub for mobile profile
* mono/mono@6caa9bd8812 Disable a flaky FileSystemWatcher test
* mono/mono@7e31c5d11f7 Merge pull request #7849 from marek-safar/corefx-fixes
* mono/mono@294707cf882 [build] Fixes bootstrap invocation of cil-stringreplacer
* mono/mono@dc1ef2ea3a2 [runtime] One more MonoClass getter fixup (#7836)
* mono/mono@dc6700a799f [corlib] Restores ConcurrentDictionary serialization support.
* mono/mono@32e6bccc2d1 [System] Makes TLS providers linker friendly
* mono/mono@554690a64cd [build] Update monolite package to support cil-stringreplacer (#7847)
* mono/mono@96e8fa67e2f [bcl] Fix Cscompmgd/I18N.Rare not having any tests (#7842)
* mono/mono@3157302581e Pull in bug 53272 fix
* mono/mono@16d5c314094 [ci] Bundle nunit xml results in a .tar file (#7843)
* mono/mono@5e1acb47f5d [genproj] Deduplication of project references (#7844)
* mono/mono@b20d5ce1e5d [runtime] Rework how the native-to-managed eh callback is called. (#5837)
* mono/mono@2b663424a04 [threads] Remove suspicious mono_gchandle_free
* mono/mono@f66032b7c0f Fix F# build. (#7826)
* mono/mono@e610e443cd6 Structure field that cannot be marshalled throws exception instead of aborts\n Alllow structure pointer conversion for blittable multi-dimentional arrays (#7794)
* mono/mono@febd5ac5358 MonoClass getters mop-up PR (#7806)
* mono/mono@a5099ca2a44 [mini] Use MonoClass getters in method-to-ir.c (#7772)
* mono/mono@2ce121ab7b1 [sre-save] Remove type_token assignment in mono_image_fill_export_table (#7803)
* mono/mono@2f5077a1fba [sdks] Fix the ios sdk build. (#7801)
* mono/mono@dde9ee5e79e [w32handle] Lower minimum memory usage (2nd attempt) (#7508)
* mono/mono@30903764c24 [sdks] Fix Android build for toolchain (#7817)
* mono/mono@2709d2309e6 [mini] Use MonoClass getters on non-AMD64 platforms (#7799)
* mono/mono@506fc0b522f [genproj] Deduplication of sources (#7810)
* mono/mono@331f3d9f27e Fix warnings and cleanup style. (#7800)
* mono/mono@954911d3f1a Genproj updates for BCL build in Windows Visual Studio (#7755)
* mono/mono@431c67415cf [mini] Use MonoClass getters in aot-compiler.c (#7773)
* mono/mono@76f01933880 [ci] For checked builds, pass -k to make (#7802)
* mono/mono@43d9c4737bc Imports FtpWebRequest from CoreFX (#7644)
* mono/mono@bc25029b580 Disable some flaky tests.
* mono/mono@901ccebb0ac [sdks] Disable the interpreter on ios device builds. (#7793)
* mono/mono@e3c284c4e36 CodeOwners update (#7798)
* mono/mono@74daf13fb29 Harden JIT job control against cctors deadlocking. (#7423)
* mono/mono@7bb6e59e38c [runtime] Fix lock tracer compilation error (#7767)
* mono/mono@1bdcf191697 [corlib] System.Collections from CoreFX (#7478)
* mono/mono@3aeab61192b [mini] Use MonoClass getters in a few files (#7771)
* mono/mono@158bb416eb0 [interp] Use MonoClass getters (#7774)
* mono/mono@b06de64bf86 Fallback to listing drives in My Computer using System.IO.DriveInfo.
* mono/mono@b8fdce6c053 [Tailcall] Fix virtual generic methods that F# tests uses. (#7524)
* mono/mono@066ce338255 Add tailcall support & fix floating point ABI (#7695)
* mono/mono@d233bdbf998 [icall] remove DISABLE_PROCESS_HANDLING (#7779)
* mono/mono@7de72fbf3f0 [interp] support increment and decrement of nint/nuint
* mono/mono@d4247747510 [interp] improve error message and add another interp_in signature
* mono/mono@dfabaa59175 Remove incorrect docs (#7784)
* mono/mono@67e995c6e27 [interp] Improve mixed mode execution support, using full-aot+interp as the configuration. (#7764)
* mono/mono@9c63d1bf9df [sdks] Fix Android build for mxe (#7781)
* mono/mono@8a3b4bf2af0 [sdks] Fix Android build on Linux (#7775)
* mono/mono@95d450660be [interp] move variable decl into ifdef to avoid unused warning (#7763)
* mono/mono@392e1c368c3 [Tailcall] Proper fix for F# regression, at least some architectures. (#7658)
* mono/mono@45c94b22ab3 [sdks] Fix Android build (#7768)
* mono/mono@d856789ccd4 Bump corefx to bring a fix for #7696
* mono/mono@9bc0a49bc78 [runtime] Fix the cross compiler build. (#7754)
* mono/mono@3d2891097a7 Merge pull request #7748 from lambdageek/fix-gc-descr-object-c
* mono/mono@3283af3449d [msvc] Update csproj files
* mono/mono@3ec9fda3718 [System.Core] Guard against embedded NUL in strings for MemoryMappedFiles (#7318)
* mono/mono@6822a57663b Disable a flaky test.
* mono/mono@54e3eccc5d8 [build] Bump bootstrap mcs dependency for mcs builds to catch up with e6fb82b2c7b4a8f42827f9a952dec0a03ae9c8c9
* mono/mono@99d31278e35 [interp] always set old_frame in interp_entry (#7757)
* mono/mono@c2698519b0c [interp] Allocate ThreadContext structures on the heap instead of on the stack, the latter doesn't work in mixed mode if the native frame gets unwound during exception handling, so the set_context (NULL) call is never executed, leaving a dangling ref in the tls variable. (#7747)
* mono/mono@678576f5a8c [System.Windows.Forms] Reset check state of item when removing it. (#7744)
* mono/mono@87fd0714126 Revert "Swap Close/Dispose calls so that the receiver_thread_main loop will be properly interrupted (#7390)" (#7745)
* mono/mono@9b702e8052f Bump API snapshot submodule
* mono/mono@e6fb82b2c7b Bump bootstrap dependency
* mono/mono@7a9f8405d49 [corlib] String from CoreFX/CoreRT
* mono/mono@20ba08543e4 [corlib] Use UTF8 bytes convertor directly
* mono/mono@d9e3d7c4075 Remove dead code (#7738)
* mono/mono@c732bd47584 This fixes an issue we are seeing with VSTU debgugging in Unity. (#7634)
* mono/mono@7faa4620462 Fix bug #60843 and add test (#7640)
* mono/mono@d26fb8a3eb3 Forward mono_string_new_wrapper to mono_string_new for error handling. (#7718)
* mono/mono@d5d1fb290d0 Bump roslyn-binaries to include missing file
* mono/mono@dd09fa9982d [mcs] Adds cloning for TupleLiteralElement expressions (#7746)
* mono/mono@3fa3592376c Uncomment and fix ServiceHost creation via ServiceFactory in SvcHttpHandler.cs (#3465)
* mono/mono@74dd088d400 [metadata] Add mono_class_publish_gc_descriptor
* mono/mono@f42fdeca61b [mcs] Fixes codegen for null fixed string statement
* mono/mono@8e3be153357 [metadata] Move mono_class_compute_gc_descriptor back to object.c
* mono/mono@9e4eb1ca69a Bumps roslyn to 2.7.0
* mono/mono@dc0cf83b3a8 [arm] fix stack alignment for structs (#7691)
* mono/mono@0dec8fda18c [sgen] Fix scanning of large arrays (#7672)
* mono/mono@39c9f9d935d Merge pull request #7724 from lewurm/wildcardconnect-watchos
* mono/mono@e40c97e7718 [interp] Disable pinvoke3.exe test on x64 (#7739)
* mono/mono@06463f4ca2a [Tailcall] Add interface tailcall tests, and generics thereof. (#7703)
* mono/mono@9914517a125 Remove obsolete code for getting TLS values from other threads. (#7714)
* mono/mono@9fe7008d97f [HttpClientTest] remove WildcardConnect () on WatchOS
* mono/mono@7dea71ce64b Touchup for https://github.com/mono/mono/pull/7599/
* mono/mono@37660898982 Merge pull request #7599 from lambdageek/abort-cctor-no-protection
* mono/mono@f617929e9e2 [runtime] Don't use clock_gettime on WatchOS and tvOS.
* mono/mono@081c79e6871 Add csc-dim script to .gitignore
* mono/mono@7cc78d08b09 Merge pull request #7707 from mono/fix-boottime-osx-10.7
* mono/mono@9cf2550ba2d Update man page, MONO_DISABLE_AIO is now MONO_ENABLE_AIO. (#7715)
* mono/mono@16e6e7df70a [sgen] Finish thread pool work before shutting down threads (#7647)
* mono/mono@e480620040e [System]: Fix a race condition that was exposed by #7358 (see #7668).
* mono/mono@120aa248fa5 [sdks] Fix building the ios device tests. (#7706)
* mono/mono@a5c6f5c5ca2 [w32file] do not discard sub-second resolution for access- and writetime if possible (#7650)
* mono/mono@b37166882de [runtime] Fix file handle leak with dedup+aot (#7694)
* mono/mono@feb8b568bab [mprof-report] Fix reading of TYPE_JITHELPER events in v13 files. (#7677)
* mono/mono@b77313855c2 [loader] Don't load framework Facade assemblies that are older than expected. (#7663)
* mono/mono@62921c8a62e [runtime] Don't use clock_gettime in MacOS.
* mono/mono@7528656820c [msbuild] Bump msbuild to pick up fix for issue #7184 (#7665)
* mono/mono@53a59ccf766 [sdks] Fix building the ios tests. (#7701)
* mono/mono@1c8b460b4cf [version.h] Support .git being a submodule (#7689)
* mono/mono@e99ac890e6a Add csc-dim as a prototype if default interface implementation
* mono/mono@7aeaafd2819 [runtime] Fix mono_msec_boottime () so it compiles on older ios versions, clock_gettime () is only available from ios 10. (#7671)
* mono/mono@8ae317a1e82 [arm64] Add a known TLS offset. (#7530)
* mono/mono@b6f56a115fc [Tailcall] Cleanup, handle varargs, cleanup varargs handling, be sure not to use unsupported tailcall_membase, pass r11 through, align patches. (#7600)
* mono/mono@249a02d9366 Updates codeowners (#7679)
* mono/mono@5232bef2825 Disable a flaky FileSystemWatcher test (#7578)
* mono/mono@540ef385faa If a bad header is received from the client or the connection is broken, send an internal VM_DISPOSE command to shut down the debugger thread properly.  This prevents runtime hangs that occur during profile events after the debugger shuts down.
* mono/mono@68a9bbe69f8 Update Server.py to run on both python 2 and 3
* mono/mono@2f211770198 Merge pull request #7584 from alexischr/fix-gh-6940
* mono/mono@fe3c5134bf5 Implement C#7 binary literals (#7659)
* mono/mono@421e0174793 [System.Windows.Forms] Fix bounds manipulation in Control.DrawToBitmap (#7629)
* mono/mono@d3e2518fb60 [sdks] Fix concurrent building of MonoAotOffsetsDumper.exe + Simplify building of support library (#7652)
* mono/mono@e36148dbd26 [tests] Prevent starvation by thread doing GCs (#7651)
* mono/mono@ec4c990af3e [System.Net] Replace use of obsolete `SupportsIPv6` property.
* mono/mono@43415f5f2b5 [threads] Add mono_uninstall_current_handler_block_guard
* mono/mono@92042c97323 [threads] Delay abort via handler block guard when in abort protected block.
* mono/mono@b0734593de5 [tests] Run abort-cctor.exe on the coop Jenkins job
* mono/mono@ea4274f2eb7 Revert "[Tailcall] Proper fix for F# regression." (#7656)
* mono/mono@fdbf51184ac [msvc] Update csproj files (#7654)
* mono/mono@b2271853c33 [Tailcall] Proper fix for F# regression. (#7621)
* mono/mono@9b3893f84a1 [tests] Class should be viable even if cctor is aborted in in nested finally clause
* mono/mono@247a13b081f [System.Windows.Forms] Improve logic for closing complex ToolStripDropDown layouts. (#7630)
* mono/mono@5d23a12446d [System.Windows.Forms] Unify layout engines for Controls and ToolStripItems (#7612)
* mono/mono@6bdeea15030 [jit] Incorrect code under mono --trace. (#7627)
* mono/mono@395b37c2865 Fix issue #7596 on Windows x64. (#7625)
* mono/mono@5820d1fc668 [sgen] Use current nursery size when computing allowance (#7601)
* mono/mono@52429673dc6 [mini] Don't inline methods if they're going to be instrumented for coverage. (#7554)
* mono/mono@851b36ecb25 [mini] Improve error reporting by using MonoError around more places. (#7607)
* mono/mono@6906c9dc40a  [interp] Don't crash when freeing delegate ftnptr  (#7586)
* mono/mono@2883e562e2d Fix platform-specific build issues (#7342)
* mono/mono@2d0eee9ae33 [jit] Fix partially shared constrained calls in llvmonly mode. (#7561)
* mono/mono@ec319e6de7a [aot] Increase the buffer size in emit_exception_debug_info (). (#7638)
* mono/mono@ff61c7751a6 [build] Fixes mcs only dist build
* mono/mono@4b88e2a0e29 [System]: Introduce `WebCompletionSource<T>` and use it in `WebOperation`. (#7358)
* mono/mono@29c2ba9387f Merge pull request #7520 from alexischr/use-coreclr-GetTickCount
* mono/mono@7e3a1ddaa09 [mcs] Fixes parsing ref-struct with partial keyword
* mono/mono@87282805504 [sdks] IOS fixes. (#7617)
* mono/mono@40b53bd2e0e [corlib] Handle multiple segments in IsolatedStored::GetFileNames. Fixes bxc #11771
* mono/mono@8ceead93e3e [Tailcall] Quick fix for building F#. Do not tailcall any method with a vtable_arg. (#7609)
* mono/mono@1c88a115453 [Coop thread threadpool mmap] Convert more functions to coop/handle. (#7097)
* mono/mono@239aad5265b [msvc] Update csproj files
* mono/mono@34b4d35fb78 [runtime] Clean up symbol names to not pollute the global namespace.
* mono/mono@1d70b627704 [profiler] Increment ref count of an image's method while we're keeping around pointers to it.
* mono/mono@6b116cca186 [merp] only target macOS, HOST_DARWIN includes iOS etc. as well
* mono/mono@40924c47ba0 [Mono.Data.Sqlite] Throw better exception for missing mobile support
* mono/mono@a856f8d8e48 [Tailcall] Cleanup is_supported_tail_call, put more logic in it, and be sure not to tailcall_mem_base if not supported (i.e. virtual_ not just CALLVIRT) (#7608)
* mono/mono@7e7d8a3b4fc [Facades] Make System.Net.Http.Rtc.dll a net_4_x only facade (#7590)
* mono/mono@5f572ff7a62 [msvc] Update csproj files
* mono/mono@6e246cf6134 [Facades] Move types from Facades into class libraries (#7574)
* mono/mono@4e3389667f6 [System.Xml] Update source file location from commit d4816ef1abcfc5b3dea41a87fe5a7a4c4a3781ed
* mono/mono@8c3d7c81af7 [System.Windows.Forms] Fix custom test targets in makefile. (#7571)
* mono/mono@9dbd080c293 [System.Windows.Forms] Update code for top-level windows (#7570)
* mono/mono@e85dbca0f2f Disable TestBug8592BasicOperations test
* mono/mono@b1d2b858251 Make Form scaling tests platform independent.
* mono/mono@cdb9b90baa4 Correcting typos for ISSUE_TEMPLATE.md (#7575)
* mono/mono@99198da52be [msvc] Update csproj files (#7559)
* mono/mono@16b3884854c Disable bug-80307.exe
* mono/mono@a601516ca1f [tests] Disable delegate-15.exe in the full-aot profile. (#7529)
* mono/mono@8f926ed4648 [ppdb] Set the column number in mono_ppdb_lookup_location ().
* mono/mono@78de6719641 Swap bytes for port number as Win32 API returns in network order.
* mono/mono@3b0c0bd1cff Build system tweaks for AIX (#7542)
* mono/mono@486036b6964 Revert "[Tailcall] Do not create never-executed trampoline for tail.call self. (#7331)" (#7550)
* mono/mono@06a4273d73c [mono-time] Replace mono_msec_boottime() with CoreCLR implementation. Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=58413
* mono/mono@e456f910530 Bump api-snapshot
* mono/mono@9a2b5324ee3 [Facades] Add missing Facades that exist in .NET 4.7.1 (#7541)
* mono/mono@b6be2e11a79 [threads] Fix race between abort socket syscall and thread shutdown (#7507)
* mono/mono@4ae98fb31b5 Merge pull request #7515 from kumpera/le_debugger_cleanup
* mono/mono@868a402137d [metadata] split IL generation code into seperate compilation units. (#7487)
* mono/mono@826f15a509a [interp] Fix return of value type from interp to native (#7519)
* mono/mono@f24a6d622be gboolean g_is_usermode_native_debugger_present (void). (#7488)
* mono/mono@03914603a3b [runtime] Add MS telemetry reporter for unmanaged exceptions (#7451)
* mono/mono@d3a4e19f3ca Merge pull request #7533 from akoeplinger/disable-test
* mono/mono@63e5e80d3a6 [bcl] Fix test build with mcs (#7512)
* mono/mono@14485be705f [System.Windows.Forms] Fix lifetime of Graphics objects in TextBox controls (#7491)
* mono/mono@b9d52fc4f12 [System] Disable SocketTest.AcceptBlockingStatus
* mono/mono@91b64b4560b [System.Windows.Forms] Fix bugs in PrintPreviewControl. (#7493)
* mono/mono@ee30689c181 Implement native ValueType Equals and GetHashCode support for pointer fields
* mono/mono@4532cf5fd55 [interp] Fix stack usage after throw (#7461)
* mono/mono@523ba159c2b [sgen] Fix the clearing of bits in the gc descriptor bitmap when using weak fields.
* mono/mono@660e166c7b6 [eglib] Fix typo in g_assertf (#7458)
* mono/mono@c745a9575d0 [jit] Move the check for open constructed types later in mono_jit_compile_method_with_opt (), this function can receive (#7494)
* mono/mono@25f4ef27897 [wasm] Make switching between debug/release builds easy. Build pdb files.
* mono/mono@eba41fd88a6 [wasm] Update SDK driver to handle debugging.
* mono/mono@334ddbd3ef6 [wasm] Initial support for debugging.
* mono/mono@1a56fe6a159 [wasm] Fix unwinding to work with the general unwinder.
* mono/mono@ccbb873498b [interp] Fix pinvoke from dynamic methods
* mono/mono@4ad92ef05f7 [interp] Fix detection of pinvoke call
* mono/mono@940f2d1a9fe [interp] Fix runtime invoke of pinvoke method
* mono/mono@e0f8597e9c9 Fix generated file when passing --bundled-header (#6736)
* mono/mono@b4ee86154fc [Tailcall] tail.callvirt support for AMD64 JIT (#7426)
* mono/mono@c2bf82fb98f [System]: WebRequestStream now throws correct exception on cancellation (#7074).
* mono/mono@8e4f0d8ff44 [Tailcall] Do not create never-executed trampoline for tail.call self. (#7331)
* mono/mono@ab67bcfd0bf Provide compile-tests-parallel that honors the command line so e.g. (#7479)
* mono/mono@3e8f4f7db8d [msvc] Update csproj files (#7497)
* mono/mono@a5f980dc00f [interp] Let the backend deal with thiscall cconv
* mono/mono@8b2ca1344f7 [interp] Fix EH with exception thrown from icall
* mono/mono@da7650d3d96 Bump API snapshot submodule
* mono/mono@03b030d9213 TaskAwaiter from CoreFX
* mono/mono@12557bec396 [metadata] An array is not an IEnumerator`1
* mono/mono@1140ec53948 [test] An array is not an IEnumerator`1
* mono/mono@c0a5753b02a [metadata] Add IEnumerator`1 to MonoDefaults struct
* mono/mono@36a471f14e5 [System] Remove compiler config sections for types which cannot be instantiated
* mono/mono@32d06fd8036 [corlib] Fix Type.GetInterface() to find implemented interface when "ignoreCase: true" is used (#7464)
* mono/mono@1181815eeda [w32handle] Lower minimum memory usage (#7465)
* mono/mono@e6de24c2d19 [build] Unify DEFAULT_REFERENCE handling so I can override it with TARGET_NET_REFERENCE for individual tools
* mono/mono@73859e3df28 [msvc] Update csproj files
* mono/mono@e64cd8cc8da [profiler] Use accessor functions for MonoClass fields
* mono/mono@4e6f5f10fd2 nuget-hash-extractor: Add msbuild extensions nuget version from vs15.6 msbuild branch
* mono/mono@45f30c307b9 nuget-hash-extractor: Change the nuget repo name to use for
* mono/mono@695acd0a0b9 System.Text.RegularExpressions from CoreFX (#7363)
* mono/mono@85b605042b7 [acceptance-tests] Actually disable gcsuppressfinalize.exe test
* mono/mono@c89abe54670 Bump boringssl submodule.
* mono/mono@47df243579f [mini] unpack function pointers for jump patching
* mono/mono@095519c8996 [ppc] update define usages for creating/unpacking function descriptors
* mono/mono@4fea7fb7451 [ppc] use new patching machinery
* mono/mono@ffaf5ffe0f8 [mini-runtime] unbreak platforms where MONO_ARCH_HAVE_PATCH_CODE_NEW isn't defined
* mono/mono@8ba4947f7a3 [metadata] Use MonoClass getters in the rest of metadata/ (#7354)
* mono/mono@6f225e6176a [System.Windows.Forms] Fix inconsistent state of Document object (#7422)
* mono/mono@9e1ba501ffd Fix for gcc 4.4; nominal support for older. (#7419)
* mono/mono@56263d4a756 [mini] Virtual call target is never known, remove dead code. (#7424)
* mono/mono@62c8557a7a3 [System.Security] Fixes decoding of CMS/PKCS #7 messages with an explicit cryptographic object identifier
* mono/mono@02abf28216f [corlib] Ignore TimeZoneTest.TestCtors on iOS under certain conditions due to an Apple bug. (#7429)
* mono/mono@d1ed53624bf [acceptance-tests] Disable gcsuppressfinalize.exe test that started failing
* mono/mono@b664dfe79ff [System.Windows.Forms] Updated unit tests (#7405)
* mono/mono@30ad2195339 [mixed mode] skip gsharedvt_out_sig_wrapper frames and improve regression test
* mono/mono@dab1ffc081c [interp] use mini infrastructure for stack walking
* mono/mono@a785bd16e94 Merge pull request #7401 from filipnavara/swf-layout
* mono/mono@d2bf59dd3f4 PPC support for BoringTLS
* mono/mono@ee4ed72695d [acceptance-tests] Add an env var to turn on some Mono debugging options. (#7386)
* mono/mono@4af9e3a5114 [Coop] Convert System.Enum to coop/handle. (#7131)
* mono/mono@7c34f0c7467 [packaging] Support setting the FULL_VERSION number via env vars (#7414)
* mono/mono@f546b95edfe [runtime] Increase the BCL trampoline count (#7409)
* mono/mono@fe95e4b34b0 [jit] Fix the patching of tail calls for gshared methods, the caller and the caller were using different instantiations to search the jump_target_hash.
* mono/mono@56bf6d3a738 Bump API snapshot submodule
* mono/mono@ff60734df40 Add unit test for TextBox.PreferredSize property and fix updating the preferred size cache on Text change.
* mono/mono@58f25ff1f0f Add makefile rule to build and run the notepad sample.
* mono/mono@7b6b6075672 Remove obsolete code from FlowLayoutPanel that is no longer necessary with the corrected nested layouts.
* mono/mono@ae972579de4 When Form is set to AutoSize enforce it also as the minimum size for the window manager.
* mono/mono@f1de56d31cb Update XplatUI backends to properly send WM_WINDOWPOSCHANGED for zero-sized windows.
* mono/mono@e563776f62f Avoid couple of size recalculations by streamlining the SetBounds, SetBoundsInternal and SetBoundsCore methods. Now explicit bounds are only updated in SetBoundsCore, no more all the updating and restoring with UpdateBounds calls. Rely on the WM_WINDOWSPOSCHANGED message to be sent from XplatUI.SetWindowPos to call UpdateBounds. This avoids an explicit call to XplatUI.GetWindowPos and UpdateBounds in SetBoundsCore.
* mono/mono@ff38080cc07 Fix for bug_82326 unit test.
* mono/mono@af26d754ae1 Fix couple of relayouts causing incorrectly cached control preferred size. Fix events triggered in incorrect order when Control.Controls.Remove is called. Update Dispose behavior with events and exceptions to match the reference implementation more closely.
* mono/mono@5feb428acd5 Update DisposeTest to work on latest version of .NET Framework.
* mono/mono@4f3adb750d1 Add test for label self-sizing behavior.
* mono/mono@376002afb4a Call LayoutEngine.InitLayout when appropriate and move the dist_right and dist_bottom calculation there.
* mono/mono@a859588486d Add cache for PreferredSize value.
* mono/mono@016a5a86792 Fix propagating layout to parents and then back to children when PreferredSize changes.
* mono/mono@71931189fa7 Remove obsolete code for layout of AutoSize forms.
* mono/mono@622ad5480da Unify the code for layout of anchored controls to avoid setting the bounds twice for controls with AutoSize set to true.
* mono/mono@78ad684762f Fix the default layout engine and its quirks enough to pass all unit tests again.
* mono/mono@cbb07605df2 Move GetPreferredSize implementations from container classes to respective LayoutEngine implementations. Rework the layout engines to use AutoSizeInternal property since TextBoxBase has its own AutoSize that should not be respected by layout engines. Rework automatic sizing behavior of TextBoxBase to return correct values. Rework TableLayout completely to use same code for layout and calculation of preferred size.
* mono/mono@d758a6d65fb Fix updating panel references when assigning TableLayoutSettings to TableLayoutPanel.
* mono/mono@71989c037e7 Ignore invisible controls in FlowLayout.
* mono/mono@ca957c45b42 Apply size constrains to control sizes when calculating flow layout.
* mono/mono@4b093a9d2d2 Apply size constrains to control sizes when calculating flow layout preferred size.
* mono/mono@6943077ab90 Added missing support for flow breaks in FlowLayoutPanel's preferred size calculation.
* mono/mono@eed14424e50 Add tests for FlowLayoutPanel.PreferredSize.
* mono/mono@a3690115557 Apply the constraints when setting MinimumSize/MaximumSize and update the unit test to demonstrate it.
* mono/mono@78f4b60e6ca Reduce memory pressure by reusing the LayoutEngine objects.
* mono/mono@f56b7109424 Added missing PerformLayout() calls to Control.MinimumSize and MaximumSize setters.
* mono/mono@18001b61a3a Apply Maximum/MinimumSize constraints when calculating the preferred size.
* mono/mono@1417a68137c Update Label.InternalGetPreferredSize to take the proposed size into account.
* mono/mono@73c8e1f6156 Fix Label automatic sizing code.
* mono/mono@baf431b393a [metadata] Use mono_atomic_store_release to initialize gparam cache
* mono/mono@486be78f8a9 Update README.md with current directory structure
* mono/mono@965a813f51d [msvc] Update csproj files (#7404)
* mono/mono@0c6f7fa7c53 [mcs tests] fix runtime arguments passing to test harness (#7400)
* mono/mono@9725d50c872 [sre] Use MonoClass getters in sre-save.c (#7352)
* mono/mono@15578eab17c Bump corert
* mono/mono@43ac34b36e2 [sdks] Unify targets to build runtimes (#7394)
* mono/mono@e7ba41d14c7 Swap Close/Dispose calls so that the receiver_thread_main loop will be properly interrupted (#7390)
* mono/mono@24c52e28c0b Use VSCMD_ARG_TGT_ARCH env in mkbundle on Windows when trying to autoetect target architecture. (#7281)
* mono/mono@4874e18fd23 [corlib] Remove IVT for S.R.I.RuntimeInformation facade (#7385)
* mono/mono@a9c37afaa45 [sdks] Fix the ios build.
* mono/mono@16e5f049600 [interp] remove `method` field from `InterpFrame`
* mono/mono@182a7485865 [runtime] Use MonoClass getters in object.c
* mono/mono@2713dfc5776 [metadata] Move MonoClass:gc_descr and runtime_info initialization to class-init.c
* mono/mono@9abe6ebf590 [appdomain] Fix path clobbering when trying to shadow copy siblings
* mono/mono@76d5a164473 [Test] Reenable HttpRequestIgnoreBadCookies in monotouch. (#7330)
* mono/mono@bbb882b0181 [sdks] Add watch device build.
* mono/mono@b4d53f4d7c8 [sdks] Add watch simulator build.
* mono/mono@dd5e5c8239d [sdks] Add tv simulator build.
* mono/mono@6cc113a4b35 Ios sdk changes (#7258)
* mono/mono@d8e49b1c279 Fix build from tarballs due to missing corefx.unix.sources
* mono/mono@076557c37f4 Use attribute(deprecated) instead of attribute(error). (#7362)
* mono/mono@68376f1f9b2 [msvc] Update csproj files (#7367)
* mono/mono@319749c3148 Make it build.
* mono/mono@d51e55d4a31 Bump linker to its latest master.
* mono/mono@a838b6fb39e [interp] Enable more tests (#7315)
* mono/mono@8ddcea29564 [profiler] A few low-hanging enhancements. (#7314)
* mono/mono@ddf4e7be31b Update ppc badge to correct URL in README
* mono/mono@db635611434 Merge pull request #7341 from akoeplinger/dont-throw-in-dispose
* mono/mono@fa21013d7f0 Don't throw NotImplementedException in Dispose()
* mono/mono@2c2fac29ebc [msvc] Update csproj files (#7337)
* mono/mono@4f9b89adc17 CoreFX System.Runtime.CompilerServices (#7118)
* mono/mono@cb956b58a6a Revert "Revert "[System.IO] Integrate FileSystemWatchers from CoreFX The FSEvent CoreFX watcher becomes the new default for MacOS.""
* mono/mono@fdefcf1f25b Fix build
* mono/mono@2174a521a3e Revert "[System.IO] Integrate FileSystemWatchers from CoreFX The FSEvent CoreFX watcher becomes the new default for MacOS."
* mono/mono@f5b10f34a98 [System.IO] Integrate FileSystemWatchers from CoreFX The FSEvent CoreFX watcher becomes the new default for MacOS.
* mono/mono@872c0488308 [wasm] Add a missing dependency in wasm.
* mono/mono@8facc4afb2c [System]: Use new `WebCompletionSource` instead of `TaskCompletionSource`. (#7293)
* mono/mono@dfe6e2d4a2c Merge pull request #7321 from mono/fix-linuxarm-native-stacktrace
* mono/mono@9648645fb38 [System]: Enable some System.Net.Requests tests from CoreFX. (#7080)
* mono/mono@ce2584911fb Fix gdb not being used for native stacktraces in some cases
* mono/mono@096147d4286 [tests] Add --repeat parameter to enable runtime tests to run multiple times (#7291)
* mono/mono@a5da7b21f4b  [runtime] Implement thread info flags and get rid of tools threads. (#7226)
* mono/mono@e8141fc31da [sdb] Fix VirtualMachine.CreateEnumMirror () so it works with types from non-root domains.
* mono/mono@b8da9736209 [marshal] Use MonoClass getters in marshal.c (#7253)
* mono/mono@2f9b9142cde [msvc] Update csproj files (#7310)
* mono/mono@6ca674ed686 Update the random checking code in autoconf to this decade (#7250)
* mono/mono@b1801b78044 Always enable explicit null checks for AIX (#7300)
* mono/mono@31c03a9cbe7 [System.Windows.Forms] Remove dependency on Hwnd objects outside of XplatUI code. (#7243)
* mono/mono@6ac20034175 bump nunitlite
* mono/mono@216b5c5db8b Merge pull request #7286 from lambdageek/fix-gh-7095
* mono/mono@909b30b5ba0 [wasm] Fix v8 provisioning. (#7244)
* mono/mono@cfaa28e1d81 [threads] Reduce race window with async abort (#7274)
* mono/mono@f901c70548b [runtime] Don't assert in mono_class_is_assignable_from on iface gtd
* mono/mono@8d37ddbf1dd [runtime] Use MonoClass getters in a few small files (#7254)
* mono/mono@375304d501f [test] System.Type.IsAssignableFrom of gtd array special interfaces.
* mono/mono@d63e8b6f5ae [corlib] CompareInfo from CoreFX (#7272)
* mono/mono@c152f67574c Merge pull request #7263 from filipnavara/swf-carbontests
* mono/mono@de8dc8311da Merge branch 'master' into swf-carbontests
* mono/mono@ffbb3d90aee Merge pull request #7234 from filipnavara/swf-painteventend
* mono/mono@5705b3d2070 Update CODEOWNERS
* mono/mono@905077f90fc Add zlib.lib/zlibstatic.lib in Windows VS mkbundle build when using -z argument.
* mono/mono@d69c1568f62 Remove mention of MONO_THEME from man page. (#7282)
* mono/mono@dabdacd99b4 [metadata] Cache GenericParamInfo for anonymous gparams in MonoImage (#7155)
* mono/mono@94f8dcf102d [wasm] Add LTO release configuration. Saves 15% of binary size. (#7221)
* mono/mono@ba40177a44c Merge pull request #7269 from filipnavara/swf-theme-obsolete
* mono/mono@8ebc608febb [Tailcall] Add 11 tests that are all runnable, never crash, are self checking. (#7232)
* mono/mono@120be0fa4e6 Remove obsolete Nice theme code.
* mono/mono@e2e66cb4f8f [wcf] use ConcurrentDictionary for wait handles (#7265)
* mono/mono@8739c9b05a5 Bump api-snapshot
* mono/mono@5aafe83bbdd Activate MDI child windows after showing them (fixes 7 unit tests failures).
* mono/mono@cb48d78dc66 Return dummy value in XplatUICarbon.IconSize to let System.Windows.Forms.SystemInformationTest.IconSizeTest pass.
* mono/mono@091595f3d8f Fix the default font value in test.
* mono/mono@0d524452c54 Make XplatUICarbon.SetFocus send messages synchronously, fixes 9 unit tests.
* mono/mono@bb99dcade28 Fix windows creating, destroying and message processing in Carbon driver to be stable enough not to freeze the test suite.
* mono/mono@cde44408a4a Spit out the name of a test along with the error about undisposed forms.
* mono/mono@0a2d57ed674 Call XplatUI.PaintEventEnd when an exception happens in OnPaint.
* mono/mono@931380017f7 Unregister thread exception handler at the end of test.
* mono/mono@0129c25e435 [tests] Use RemoteExecutor from corefx
* mono/mono@335ca28eaf9 [llvm] Pass only the imt argument if both imt and rgctx arguments are required.
* mono/mono@c99ac6a87e5 Add missing XplatUI.EndLoop call.
* mono/mono@a974057d929 [sdks] Merge mxe-Win32 and mxe-Win64 targets since we are building both in XA anyway
* mono/mono@1af92912945 Fix layout of ColorDialog on systems with different window border sizes.
* mono/mono@657c7637fb2 Fix typo in implementation of Disposing property.
* mono/mono@67e557fa2e3 Handle more special keys in KeysConverter to ensure compatibility with designer generated resource files.
* mono/mono@6d889314b2e Remove obsolete theme code (disabled by commits 910c669 and 93724d2) and the last remaining usage of MONO_THEME environment variable.
* mono/mono@67c1708677a Add PointerValue.Value to dereference and access pointer value. (#6840)
* mono/mono@9bbe5e5e5f8 Bump API snapshot submodule
* mono/mono@392d3452f24 [System.Net.Http] Better exception message for invalid header value
* mono/mono@798c5efa52a Fix bug 18941: Marshal.OffsetOf and Marshal.SizeOf return incorrect results (#7142)
* mono/mono@bfdbc1e6768 Update the method signatures in the new X11 backend.
* mono/mono@1f0fc93de4c [sgen] Check if we are exceeding the worker count limit (#7180)
* mono/mono@12cbe9a7bd2 [msvc] Update csproj files (#7238)
* mono/mono@d45fb4e882f Fix xamarin-android issue 1130 and add test (#6326)
* mono/mono@a32ca3e2c28 [tests] Avoid false pinning in weak-fields test
* mono/mono@1e9816a10e9 [tests] Avoid false pinning in tests
* mono/mono@38846ee7548 Properly handle non-quoted multipart content dispositions
* mono/mono@bf12b6318af Simplify System.Windows.Forms XplatUI code by adding PaintEventArgs parameter to PaintEventEnd.
* mono/mono@9c55770f3fd [icall table] add ldflags for bitcode
* mono/mono@a9aa188ab22 Make field tokens sequential in SRE. (#7055)
* mono/mono@1804219600c [xbuild] add property that is available in msbuild (#7223)
* mono/mono@03371921a18 Problem building on Arch linux #7200 (#7230)
* mono/mono@481827b6af1 [runtime] Don't prepend '0x' to %p-formatted numbers.
* mono/mono@5eb41919438 [build] Remove multi stage build from Mono.Security (#7171)
* mono/mono@218ffb98835 Merge pull request #7225 from alexischr/bump-bockbuild
* mono/mono@2b068cb5a44 Fix some enable minimal. (#7195)
* mono/mono@ca47362a921 Fix mono_arch_setup_async_callback and add mono_arch_setup_resume_sighandler_ctx on PPC (#7159)
* mono/mono@6e0c91f0533 [interp] add another signature for interp_in wrappers
* mono/mono@c382b03fd51 [coop] Rename mono_threads_is_coop_enabled to convay better its semantic (#7178)
* mono/mono@8900231c8b0 [mini] More minor JIT cleanups. (#7130)
* mono/mono@983966c7ca1 [bockbuild] Detect HTTP errors  when using curl
* mono/mono@0a8126c2094 [WASM] Implement timers. (#7193)
* mono/mono@f0b78251899 Updates to support building the BCL using Visual Studio 2017 on windows (#6877)
* mono/mono@123d086e27e Merge pull request #6892 from lambdageek/use-getters
* mono/mono@c1cbe060f61 Merge pull request #7218 from mono/revert-6018-fix_10087
* mono/mono@49a1c8423cd Disable a flaky test on Windows https://github.com/mono/mono/issues/7199
* mono/mono@199dad7e84e Revert "Run the ProcessExit events in the threadpool and enforce a 3 seconds limit. Fixes #10087"
* mono/mono@72e5ca60b89 [msvc] Update csproj files
* mono/mono@c6f91eaa58c Fix unknown-length requests being treated as if they are fully preloaded. (#6822)
* mono/mono@119cf5259e9 [aot] Emit the same instances in hybrid aot mode as in full aot mode.
* mono/mono@f90612e047e [bcl] Comment/stub out some unused icalls to prevent problems with AOT. (#7183)
* mono/mono@3addbfe6279 Merge pull request #7181 from mono/bockbuild-download-using-curl
* mono/mono@8a52f590fc4 Bump bockbuild for https://github.com/mono/bockbuild/pull/62
* mono/mono@d4816ef1abc [System.Xml] Remove reflection calls for value has to be set
* mono/mono@8ce0775a031 [jit] Disable partial sharing during JITting, its only been tested in full aot mode, and doesn't seem to work with JITted methods. (#7161)
* mono/mono@2d2033e4401 Use proper sized integer for ioctlsocket on Win32. (#7153)
* mono/mono@89804e62bbd [mono-api-html] Expand "ignore" functionality (#7154) (#7175)
* mono/mono@df273181b52 Merge pull request #6018 from kumpera/fix_10087
* mono/mono@03b6095e3eb [runtime] Magic interfaces requires the complex stelemref to handle arrays. Fixes gh #6266 (#7038)
* mono/mono@761ddc60f9d [corlib] Make MissingMember exceptions working again after #6123
* mono/mono@735337d5e68 [metadata] Implement MONO_CLASS_IS_INTERFACE(c) in terms of public API
* mono/mono@bae5cd2d6e0 [metadata] (class.c) Use MonoClass getters
* mono/mono@f6364860459 [metadata] add missing MONO_ENTER/EXIT_GC_SAFE guards around access(2) in is_file_writable (#7126)
* mono/mono@d2383c037df [corlib] Support terminals without color support
* mono/mono@705223f6d55 [interp] Use frame_addr as base pointer in more places (#7128)
* mono/mono@5b0503a5b39 [profiler] Some minor housekeeping. (#7123)
* mono/mono@ec2faf03880 [wasm] Fix master and add sample. (#7160)
* mono/mono@ad03afd96ed [msvc] Update csproj files (#7173)
* mono/mono@a85911f480e Merge pull request #6034 from alexischr/bug-59400
* mono/mono@8658bb6048f [build] Don't add specific support file to all xunit test builds (#7163)
* mono/mono@a19fad65f3f Fix copyright
* mono/mono@7de96dd4121 Merge pull request #7150 from alexischr/bug-46473
* mono/mono@5fabb059cfc Add Mono-specific System.Net.Test.Common.Configuration.Http. (#7156)
* mono/mono@d7551cc9bf0 [metadata] Improve error message for loading unresolved types (#7147)
* mono/mono@2837f433d94 [corlib] Fix RuntimeFeatureTest.NoNewFeaturesAdded on mobile (#7149)
* mono/mono@1426d6a8da8 [remoting] Synchronize serializer/deserializer usage for call data. Fixes #46473
* mono/mono@18e274b14b7 Bump corefx submodule
* mono/mono@045acb8f198 [jit] Handle more cases for gsharedvt constrained calls. (#7081)
* mono/mono@3b8ec9e97b1 [wasm] Fix the port to work with the latest version of emcc. (#7091)
* mono/mono@eef0801f3e3 Assorted fixes for AIX and i (#6934)
* mono/mono@38989b012ff [Coop] Convert many simple mono_object_new_checked to mono_object_new_handle. (#7129)
* mono/mono@dd4dbd8d4b1 [System.ServiceModel] Prevent crash in Dispatcher.ListenerLoopManager… (#7136)
* mono/mono@1791e50b56b [class] Fix resolution of interfaces in classes implementing IEnumerator. Fixes #59400
* mono/mono@7b120ae2d46 [msvc] Update csproj files (#7140)
* mono/mono@98cadff5f6a bump nunit-lite
* mono/mono@ecadc6cf319 [wasm] Make .stamp-depot-tools more reliable. (#7078)
* mono/mono@9b1e845740d [corlib] order sources content
* mono/mono@bf3ed7115b2 [corlib] Add System.Runtime.ProfileOptimization APIs (#7120)
* mono/mono@6a01a0b314b WinForms: Enable external CocoaDriver external driver (#7100)
* mono/mono@a65c354f7b2 Bump api-snapshot submodule
* mono/mono@4d52a10ca04 [mini] Move some arch-specific interpreter logic into backends and provide stubs.
* mono/mono@4358581865b [mini] Don't use arch_target to point to arch/ subdirs.
* mono/mono@e9c51fa3e5f [mini] Use a MONO_ARCH_INTERPRETER_SUPPORTED define instead of checking archs in driver.c.
* mono/mono@23acd0f78be Fix for XA integration
* mono/mono@7da8b503c6d [msvc] Update csproj files
* mono/mono@f6a6779ff5b [corlib] CoreRT System.Threading.Tasks (#6672)
* mono/mono@ed951069656 Coop/handle conversion of ByteArrayToCurrentDomain and ByteArrayToRootDomain. (#6692)
* mono/mono@c4d1da6ef3c [master] [sdks] Fix for XA integration (#7103)
* mono/mono@a7ed34f4db6 Centralize handle-based post-object creation code. (#7096)
* mono/mono@79ef9d5105d Fix race condition in mono_thread_execute_interruption.  (#6833)
* mono/mono@d7626e8217f [coop] Add handle-based object create functions. (#6876)
* mono/mono@aec2773e1db Revert "[System.Drawing] Disable tests except on ARM64 (#6909)"
* mono/mono@83ed33ba2c0 [Coop] Convert Console to Coop/Handles. (#7060)
* mono/mono@b043ff5f747 [aot] Bump aot file format version because of 7cac757e60cd61aa070f7e0fffca225364f58c0c. (#7079)
* mono/mono@ded74c0b12a Use the preallocated domain->out_of_memory_ex instead of allocating. (#6819)
* mono/mono@52514effbf1 [marshal] For generic method icalls, handle generic param arguments when using coop handles
* mono/mono@e01355eead8 [Cplusplus] Fix possible race condition and add casts between void* and function pointers. (#6871)
* mono/mono@9209ea06298 Merge pull request #7073 from mono/disable-test-sleep
* mono/mono@cfa087bfd74 [aot] Rename mono_aot_get_method_checked () to mono_aot_get_method (), there is no non-checked version anymore. (#7071)
* mono/mono@e2419dee784 [interp] Add missing exception checkpoints (#6917)
* mono/mono@1028994a882 Disable a flaky test on PRs (https://github.com/mono/mono/issues/6999)
* mono/mono@cf644472f9f [msvc] Update csproj files (#7070)
* mono/mono@23e6f6f4b58 Revert "[jit] Make some JIT regression test files compile in the mobile profile (#7059)" (#7069)
* mono/mono@b7385ba797b [sdks] Add targets for the watch cross compiler. (#7061)
* mono/mono@fc7bda62d35 [coop] Convert some `mono_exception_*` functions Reduce managed exposure in utils a little.
* mono/mono@e2874db5227 [jit] Make some JIT regression test files compile in the mobile profile (#7059)
* mono/mono@ea1fac3d898 [coop] Remove unnecessary write barriers against thread locals and cleanup a little. (#6874)
* mono/mono@3bd630eba79 [mkbundle] Automatically bundle config files and machine.config files (#7002)
* mono/mono@b90d8ec387a Remove GetNLSocket which is unused and produces a warning because it is unprototyped. (#6691)
* mono/mono@4a83009a036 WSL does not nul terminate uname.release. memset(0) it first. (#7023)
* mono/mono@8d826997362 Merge pull request #7057 from lewurm/interp-disable-flaky-pinvoke-test
* mono/mono@62bf8bd4d52 [System.ServiceModel.Activation] Move ServiceHostFactory.cs where it's used (#7044)
* mono/mono@2322177e6ae [interp] disable flaky pinvoke test
* mono/mono@8ad191dfbb2 mono_get_exception_runtime_wrapped_checked contains an unnecessary 16 (#6659)
* mono/mono@20e69fa1996 Centralize post-object creation code in mono_object_new_common_tail. (#6903)
* mono/mono@a33cbb873c4 [interp] Fix native to interp transition (#6868)
* mono/mono@7cac757e60c [aot] Emit the weak field indexes table using the MONO_AOT_TABLE code, so it works with separate aot data files/bitcode.
* mono/mono@8c90350d114 Add denied assembly versions from previous ms extensions nugets
* mono/mono@47187bbc9b5 [Mono.Posix] .NET Core compatibility - Use [In,Out] for arrays of structures
* mono/mono@57f3f34e60e Revert "[coop] Remove support for invoke thunk wrapper" (#6927)
* mono/mono@8d19e5a1c59 [runtime] Unboxing of nullable enums should throw for boxed ints. (#6958)
* mono/mono@8f35227b886 [debugger] disable StepOutAsync test because it's flaky
* mono/mono@545191f7732 Pass null-terminated string for logging
* mono/mono@2c1f45f3791 [TermInfo] support new file format terminfo2 introduced with ncurses6.1 (#6960)
* mono/mono@3012ce06e43 Update F# to 4.1.33
* mono/mono@ff989895794 [runtime] Avoid recreating the icall table in lookup_icall_symbol (). (#6988)
* mono/mono@17b4b28f050 [sdk] Fix the invocation of run-step.sh, the --timeout argument is mandatory. (#7013)
* mono/mono@3fdbbe5e44b [sdks] Fix the tar command since the llvm binaries are in different directories now. (#7010)
* mono/mono@f4d3da6d4ac [runtime] Fix merge conflict and Move code to its right place.
* mono/mono@c3c6e6c9cdf [runtime] Ignore FireProcessExit if the method is missing on corlib.
* mono/mono@b9b08c0d02e [runtime] Implement a domain resistant version of mono_domain_foreach and switch the unloading code to use it.
* mono/mono@755c5bd7137 [runtime] Fix docstring for mono_unhandled_exception_checked.
* mono/mono@4f8968cf6c9 [corlib] Fix minor style issue.
* mono/mono@1fd32df7d1a [runtime] Introduce a non-fatal unhandled exceptions and use it for AppDomain::ProcessExit.
* mono/mono@c9c7dad3a3a Bump mono/NUnitLite
* mono/mono@dd2c320aa39 [runtime] Change domain before firing ProcessExit.
* mono/mono@7500341ec03 [runtime] Run the ProcessExit events in the threadpool and enforce a 3 seconds limit. Fixes #10087
* mono/mono@6e28ccb4e5b [utils] Add "exec" log category for misc runtime activity.
* mono/mono@96f2d163a33 Merge pull request #6970 from dsyme/patch-1
* mono/mono@e52ef6aedd1 [build] Fixes monolite build (#6982)
* mono/mono@36cbab657f4 [msvc] Update csproj files
* mono/mono@f61bc393d34 Simplify MonoError and managed Exception creation (#6123)
* mono/mono@60d4907f48e [runtime] Revert mkbundle defaulting behavior made in ca8b8bd346 (#6687)
* mono/mono@d8d3e29f382 Bump api-snapshot
* mono/mono@03549126030 Bump F# mono version to 4.1.32
* mono/mono@d573dec96ea Bump linker and update linker-analyzer references
* mono/mono@d6e74834549 [interp] Fix CEE_UNBOX
* mono/mono@7a528f6f97d [sre] Unlock loader lock on error paths (#6951)
* mono/mono@e572acca552 [ci] Only create artifacts.json GitHub status on release branches
* mono/mono@939d7207708 [ci] Disable monodoc tests on Windows for now
* mono/mono@ea7b3849c48 Cleanup recent JIT fix to get it done in the right place. (#6895)
* mono/mono@29d402d8e0d [handle] Have `MONO_HANDLE_*` macros use a uintptr_t instead of int (#6906)
* mono/mono@25c41cbf419 Fix gshared support for default interface methods by always passing an mrgctx to them. (#6935)
* mono/mono@1c631424d26 Merge pull request #6929 from mono/disable-test-TaskCancelWait1
* mono/mono@dcecd8ff83b Disable flaky test
* mono/mono@b97d0c43d1c [System]: WebConnection.Connect() needs to probe all IP addresses.
* mono/mono@e43adf3cd5a Change mono_thread_resume_interruption to return void, one less raw pointer to worry about. (#6690)
* mono/mono@c944c358f13 [scripts] Fix scripts/update_submodules.sh for use with git worktree
* mono/mono@7f9167bc5b6 [runtime] Fix the --enable-icall-symbol-map build. (#6943)
* mono/mono@921132a3622 [runtime] Make icall tables loadable. (#6905)
* mono/mono@d8beb3ef110 [profiler] Remove obsolete code coverage support from the log profiler. (#6896)
* mono/mono@48898cb810c [sdks] Fix ios+llvm. (#6939)
* mono/mono@7f47f190859 [runtime] Fix a warning. (#6937)
* mono/mono@b970e766fad [interp] Add class failure checks
* mono/mono@52ebab86031 [interp] Fix varargs passing
* mono/mono@3369b6e2143 [interp] Align vt stack in some places
* mono/mono@6ffa48f6ada [interp] Add define for value type alignment
* mono/mono@9f2b8595a34 …
lewurm added a commit to lewurm/xamarin-android that referenced this pull request Nov 21, 2018
dellis1972 referenced this pull request in dellis1972/xamarin-android Feb 5, 2019
When using fastdev typemaps we get the following error

```
01-31 10:57:34.336  5802  5802 F libc    : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 5802 (haredandroidios), pid 5802 (haredandroidios)
01-31 10:57:34.358  5829  5829 I crash_dump32: obtaining output fd from tombstoned, type: kDebuggerdTombstone
01-31 10:57:34.358  1685  1685 I /system/bin/tombstoned: received crash request for pid 5802
01-31 10:57:34.359  5829  5829 I crash_dump32: performing dump of process 5802 (target tid = 5802)
01-31 10:57:34.363  5829  5829 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
01-31 10:57:34.363  5829  5829 F DEBUG   : Build fingerprint: 'Android/sdk_phone_x86/generic_x86:9/PSR1.180720.012/4923214:userdebug/test-keys'
01-31 10:57:34.363  5829  5829 F DEBUG   : Revision: '0'
01-31 10:57:34.363  5829  5829 F DEBUG   : ABI: 'x86'
01-31 10:57:34.363  5829  5829 F DEBUG   : pid: 5802, tid: 5802, name: haredandroidios  >>> com.xamarin.blankformssharedandroidios <<<
01-31 10:57:34.363  5829  5829 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
01-31 10:57:34.363  5829  5829 F DEBUG   : Cause: null pointer dereference
01-31 10:57:34.363  5829  5829 F DEBUG   :     eax 00000000  ebx e6b2e754  ecx 00000000  edx 00000000
01-31 10:57:34.363  5829  5829 F DEBUG   :     edi e0cc58f0  esi 00000000
01-31 10:57:34.363  5829  5829 F DEBUG   :     ebp ffd85ff8  esp ffd85fcc  eip e6a60532
01-31 10:57:34.459  5829  5829 F DEBUG   :
01-31 10:57:34.459  5829  5829 F DEBUG   : backtrace:
01-31 10:57:34.459  5829  5829 F DEBUG   :     #00 pc 0001e532  /system/lib/libc.so (strlen+18)
01-31 10:57:34.459  5829  5829 F DEBUG   :     #1 pc 00075952  /system/lib/libc.so (strdup+34)
01-31 10:57:34.459  5829  5829 F DEBUG   :     #2 pc 0000f6ab  /data/app/com.xamarin.blankformssharedandroidios-nCq7hL5Bz-TYILJl3W97zw==/lib/x86/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::add_type_mapping(xamarin::android::internal::TypeMappingInfo**, char const*, char const*, char const*)+667)
01-31 10:57:34.459  5829  5829 F DEBUG   :     #3 pc 00010ed7  /data/app/com.xamarin.blankformssharedandroidios-nCq7hL5Bz-TYILJl3W97zw==/lib/x86/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::try_load_typemaps_from_directory(char const*)+871)
01-31 10:57:34.459  5829  5829 F DEBUG   :     #4 pc 000233b8  /data/app/com.xamarin.blankformssharedandroidios-nCq7hL5Bz-TYILJl3W97zw==/lib/x86/libmonodroid.so (gather_bundled_assemblies(_JNIEnv*, xamarin::android::jstring_array_wrapper&, bool, int*)+248)
01-31 10:57:34.459  5829  5829 F DEBUG   :     #5 pc 000229c6  /data/app/com.xamarin.blankformssharedandroidios-nCq7hL5Bz-TYILJl3W97zw==/lib/x86/libmonodroid.so (create_domain(_JNIEnv*, _jclass*, xamarin::android::jstring_array_wrapper&, _jstring*, _jobject*, bool)+166)
01-31 10:57:34.459  5829  5829 F DEBUG   :     #6 pc 0001f20c  /data/app/com.xamarin.blankformssharedandroidios-nCq7hL5Bz-TYILJl3W97zw==/lib/x86/libmonodroid.so (create_and_initialize_domain(_JNIEnv*, _jclass*, xamarin::android::jstring_array_wrapper&, _jobjectArray*, _jobject*, bool)+204)
01-31 10:57:34.460  5829  5829 F DEBUG   :     #7 pc 0001c7af  /data/app/com.xamarin.blankformssharedandroidios-nCq7hL5Bz-TYILJl3W97zw==/lib/x86/libmonodroid.so (Java_mono_android_Runtime_init+4255)
```

The was down to the `try_load_typemaps_from_directory` passing a
`nullptr` to the `add_type_mapping` method. This method was
calling `strdup`, which does NOT like `nullptr`.

Since the `source_entry` argument is only used for logging we
migth as well create a constant string with a value of
`.__override__` so that if there is a problem we can see
from the logs this was a fastdev issue.
jonpryor pushed a commit that referenced this pull request Feb 5, 2019
When using fastdev typemaps files we get the following error:

	F libc    : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 5802 (haredandroidios), pid 5802 (haredandroidios)
	I crash_dump32: obtaining output fd from tombstoned, type: kDebuggerdTombstone
	I /system/bin/tombstoned: received crash request for pid 5802
	I crash_dump32: performing dump of process 5802 (target tid = 5802)
	F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
	F DEBUG   : Build fingerprint: 'Android/sdk_phone_x86/generic_x86:9/PSR1.180720.012/4923214:userdebug/test-keys'
	F DEBUG   : Revision: '0'
	F DEBUG   : ABI: 'x86'
	F DEBUG   : pid: 5802, tid: 5802, name: haredandroidios  >>> com.xamarin.blankformssharedandroidios <<<
	F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
	F DEBUG   : Cause: null pointer dereference
	F DEBUG   :     eax 00000000  ebx e6b2e754  ecx 00000000  edx 00000000
	F DEBUG   :     edi e0cc58f0  esi 00000000
	F DEBUG   :     ebp ffd85ff8  esp ffd85fcc  eip e6a60532
	F DEBUG   :
	F DEBUG   : backtrace:
	F DEBUG   :     #00 pc 0001e532  /system/lib/libc.so (strlen+18)
	F DEBUG   :     #1 pc 00075952  /system/lib/libc.so (strdup+34)
	F DEBUG   :     #2 pc 0000f6ab  /data/app/com.xamarin.blankformssharedandroidios-nCq7hL5Bz-TYILJl3W97zw==/lib/x86/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::add_type_mapping(xamarin::android::internal::TypeMappingInfo**, char const*, char const*, char const*)+667)
	F DEBUG   :     #3 pc 00010ed7  /data/app/com.xamarin.blankformssharedandroidios-nCq7hL5Bz-TYILJl3W97zw==/lib/x86/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::try_load_typemaps_from_directory(char const*)+871)
	F DEBUG   :     #4 pc 000233b8  /data/app/com.xamarin.blankformssharedandroidios-nCq7hL5Bz-TYILJl3W97zw==/lib/x86/libmonodroid.so (gather_bundled_assemblies(_JNIEnv*, xamarin::android::jstring_array_wrapper&, bool, int*)+248)
	F DEBUG   :     #5 pc 000229c6  /data/app/com.xamarin.blankformssharedandroidios-nCq7hL5Bz-TYILJl3W97zw==/lib/x86/libmonodroid.so (create_domain(_JNIEnv*, _jclass*, xamarin::android::jstring_array_wrapper&, _jstring*, _jobject*, bool)+166)
	F DEBUG   :     #6 pc 0001f20c  /data/app/com.xamarin.blankformssharedandroidios-nCq7hL5Bz-TYILJl3W97zw==/lib/x86/libmonodroid.so (create_and_initialize_domain(_JNIEnv*, _jclass*, xamarin::android::jstring_array_wrapper&, _jobjectArray*, _jobject*, bool)+204)
	F DEBUG   :     #7 pc 0001c7af  /data/app/com.xamarin.blankformssharedandroidios-nCq7hL5Bz-TYILJl3W97zw==/lib/x86/libmonodroid.so (Java_mono_android_Runtime_init+4255)


The was down to the `try_load_typemaps_from_directory()` passing a
`nullptr` to the `add_type_mapping()` method.  This method was
calling **strdup**(3), which does NOT like `nullptr`.

Since the `source_entry` argument is only used for logging we might
as well create a constant string with a value of `.__override__` so
that if there is a problem we can see from the logs this was a
fastdev issue.
grendello added a commit to grendello/xamarin-android that referenced this pull request May 11, 2020
Fixes: dotnet#4596
Context: a017561
Context: https://gist.github.com/pjcollins/87762e81f1f3c7e8b821356e4612eecf

A missing parameter in a call to `log_debug` added in a017561 may lead
to a segfault when `assembly` log category and `debug` log level are
enabled:

		F libc    : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3 in tid 922 (DrawableTinting), pid 922 (DrawableTinting)
		I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
		I /system/bin/tombstoned: received crash request for pid 922
		I crash_dump64: performing dump of process 922 (target tid = 922)
		F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
		F DEBUG   : Build fingerprint: 'Android/sdk_phone_x86_64/generic_x86_64:9/PSR1.180720.012/4923214:userdebug/test-keys'
		F DEBUG   : Revision: '0'
		F DEBUG   : ABI: 'x86_64'
		F DEBUG   : pid: 922, tid: 922, name: DrawableTinting  >>> com.xamarin.DrawableTinting <<<
		F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3
		F DEBUG   : Cause: null pointer dereference
		F DEBUG   :     rax 0000000000000000  rbx 00007ffed3c283c0  rcx 0000000000000003  rdx 0000000000000002
		F DEBUG   :     r8  00007ffed3c283c0  r9  00000000ffffffff  r10 00007ffed3c283d0  r11 00007ffed3c28824
		F DEBUG   :     r12 00007c88774a2f17  r13 00000000ffffffff  r14 0000000000000000  r15 00007ffed3c283d0
		F DEBUG   :     rdi 0000000000000003  rsi 00007ffed3c283bb
		F DEBUG   :     rbp 00007ffed3c28f18  rsp 00007ffed3c28288  rip 00007c890f860761
		F DEBUG   :
		F DEBUG   : backtrace:
		F DEBUG   :     #00 pc 0000000000020761  /system/lib64/libc.so (strlen+17)
		F DEBUG   :     #1 pc 000000000006e761  /system/lib64/libc.so (__vfprintf+5953)
		F DEBUG   :     #2 pc 000000000008df5d  /system/lib64/libc.so (vsnprintf+189)
		F DEBUG   :     #3 pc 0000000000007b60  /system/lib64/liblog.so (__android_log_vprint+64)
		F DEBUG   :     dotnet#4 pc 000000000001350c  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (log_debug_nocheck(_LogCategories, char const*, ...)+204)
		F DEBUG   :     dotnet#5 pc 000000000000de6a  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::typemap_java_to_managed(char const*)+538)
		F DEBUG   :     dotnet#6 pc 000000000000df13  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::typemap_java_to_managed(_MonoString*)+99)
		F DEBUG   :     dotnet#7 pc 00000000000d57f8  <anonymous:0000000042d04000>

Add the missing parameter to prevent the `SIGSEGV` from happening.
jonpryor pushed a commit that referenced this pull request May 11, 2020
…4673)

Fixes: #4596
Context: a017561
Context: https://gist.github.com/pjcollins/87762e81f1f3c7e8b821356e4612eecf

A missing parameter in a call to `log_debug` added iFixes: #4596
Context: a017561
Context: https://gist.github.com/pjcollins/87762e81f1f3c7e8b821356e4612eecf

A missing parameter in a call to `log_debug()` added in a017561 may
lead to a segfault when `assembly` log category and `debug` log level
are enabled:

	F libc    : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3 in tid 922 (DrawableTinting), pid 922 (DrawableTinting)
	I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
	I /system/bin/tombstoned: received crash request for pid 922
	I crash_dump64: performing dump of process 922 (target tid = 922)
	F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
	F DEBUG   : Build fingerprint: 'Android/sdk_phone_x86_64/generic_x86_64:9/PSR1.180720.012/4923214:userdebug/test-keys'
	F DEBUG   : Revision: '0'
	F DEBUG   : ABI: 'x86_64'
	F DEBUG   : pid: 922, tid: 922, name: DrawableTinting  >>> com.xamarin.DrawableTinting <<<
	F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3
	F DEBUG   : Cause: null pointer dereference
	F DEBUG   :     rax 0000000000000000  rbx 00007ffed3c283c0  rcx 0000000000000003  rdx 0000000000000002
	F DEBUG   :     r8  00007ffed3c283c0  r9  00000000ffffffff  r10 00007ffed3c283d0  r11 00007ffed3c28824
	F DEBUG   :     r12 00007c88774a2f17  r13 00000000ffffffff  r14 0000000000000000  r15 00007ffed3c283d0
	F DEBUG   :     rdi 0000000000000003  rsi 00007ffed3c283bb
	F DEBUG   :     rbp 00007ffed3c28f18  rsp 00007ffed3c28288  rip 00007c890f860761
	F DEBUG   :
	F DEBUG   : backtrace:
	F DEBUG   :     #00 pc 0000000000020761  /system/lib64/libc.so (strlen+17)
	F DEBUG   :     #1 pc 000000000006e761  /system/lib64/libc.so (__vfprintf+5953)
	F DEBUG   :     #2 pc 000000000008df5d  /system/lib64/libc.so (vsnprintf+189)
	F DEBUG   :     #3 pc 0000000000007b60  /system/lib64/liblog.so (__android_log_vprint+64)
	F DEBUG   :     #4 pc 000000000001350c  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (log_debug_nocheck(_LogCategories, char const*, ...)+204)
	F DEBUG   :     #5 pc 000000000000de6a  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::typemap_java_to_managed(char const*)+538)
	F DEBUG   :     #6 pc 000000000000df13  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::typemap_java_to_managed(_MonoString*)+99)
	F DEBUG   :     #7 pc 00000000000d57f8  <anonymous:0000000042d04000>

Add the missing parameter to prevent the `SIGSEGV` from happening.n a017561 may lead
to a segfault when `assembly` log category and `debug` log level are
enabled:

		F libc    : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3 in tid 922 (DrawableTinting), pid 922 (DrawableTinting)
		I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
		I /system/bin/tombstoned: received crash request for pid 922
		I crash_dump64: performing dump of process 922 (target tid = 922)
		F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
		F DEBUG   : Build fingerprint: 'Android/sdk_phone_x86_64/generic_x86_64:9/PSR1.180720.012/4923214:userdebug/test-keys'
		F DEBUG   : Revision: '0'
		F DEBUG   : ABI: 'x86_64'
		F DEBUG   : pid: 922, tid: 922, name: DrawableTinting  >>> com.xamarin.DrawableTinting <<<
		F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3
		F DEBUG   : Cause: null pointer dereference
		F DEBUG   :     rax 0000000000000000  rbx 00007ffed3c283c0  rcx 0000000000000003  rdx 0000000000000002
		F DEBUG   :     r8  00007ffed3c283c0  r9  00000000ffffffff  r10 00007ffed3c283d0  r11 00007ffed3c28824
		F DEBUG   :     r12 00007c88774a2f17  r13 00000000ffffffff  r14 0000000000000000  r15 00007ffed3c283d0
		F DEBUG   :     rdi 0000000000000003  rsi 00007ffed3c283bb
		F DEBUG   :     rbp 00007ffed3c28f18  rsp 00007ffed3c28288  rip 00007c890f860761
		F DEBUG   :
		F DEBUG   : backtrace:
		F DEBUG   :     #00 pc 0000000000020761  /system/lib64/libc.so (strlen+17)
		F DEBUG   :     #1 pc 000000000006e761  /system/lib64/libc.so (__vfprintf+5953)
		F DEBUG   :     #2 pc 000000000008df5d  /system/lib64/libc.so (vsnprintf+189)
		F DEBUG   :     #3 pc 0000000000007b60  /system/lib64/liblog.so (__android_log_vprint+64)
		F DEBUG   :     #4 pc 000000000001350c  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (log_debug_nocheck(_LogCategories, char const*, ...)+204)
		F DEBUG   :     #5 pc 000000000000de6a  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::typemap_java_to_managed(char const*)+538)
		F DEBUG   :     #6 pc 000000000000df13  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::typemap_java_to_managed(_MonoString*)+99)
		F DEBUG   :     #7 pc 00000000000d57f8  <anonymous:0000000042d04000>

Add the missing parameter to prevent the `SIGSEGV` from happening.
jonpryor pushed a commit that referenced this pull request May 12, 2020
…4673)

Fixes: #4596
Context: a017561
Context: https://gist.github.com/pjcollins/87762e81f1f3c7e8b821356e4612eecf

A missing parameter in a call to `log_debug` added iFixes: #4596
Context: a017561
Context: https://gist.github.com/pjcollins/87762e81f1f3c7e8b821356e4612eecf

A missing parameter in a call to `log_debug()` added in a017561 may
lead to a segfault when `assembly` log category and `debug` log level
are enabled:

	F libc    : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3 in tid 922 (DrawableTinting), pid 922 (DrawableTinting)
	I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
	I /system/bin/tombstoned: received crash request for pid 922
	I crash_dump64: performing dump of process 922 (target tid = 922)
	F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
	F DEBUG   : Build fingerprint: 'Android/sdk_phone_x86_64/generic_x86_64:9/PSR1.180720.012/4923214:userdebug/test-keys'
	F DEBUG   : Revision: '0'
	F DEBUG   : ABI: 'x86_64'
	F DEBUG   : pid: 922, tid: 922, name: DrawableTinting  >>> com.xamarin.DrawableTinting <<<
	F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3
	F DEBUG   : Cause: null pointer dereference
	F DEBUG   :     rax 0000000000000000  rbx 00007ffed3c283c0  rcx 0000000000000003  rdx 0000000000000002
	F DEBUG   :     r8  00007ffed3c283c0  r9  00000000ffffffff  r10 00007ffed3c283d0  r11 00007ffed3c28824
	F DEBUG   :     r12 00007c88774a2f17  r13 00000000ffffffff  r14 0000000000000000  r15 00007ffed3c283d0
	F DEBUG   :     rdi 0000000000000003  rsi 00007ffed3c283bb
	F DEBUG   :     rbp 00007ffed3c28f18  rsp 00007ffed3c28288  rip 00007c890f860761
	F DEBUG   :
	F DEBUG   : backtrace:
	F DEBUG   :     #00 pc 0000000000020761  /system/lib64/libc.so (strlen+17)
	F DEBUG   :     #1 pc 000000000006e761  /system/lib64/libc.so (__vfprintf+5953)
	F DEBUG   :     #2 pc 000000000008df5d  /system/lib64/libc.so (vsnprintf+189)
	F DEBUG   :     #3 pc 0000000000007b60  /system/lib64/liblog.so (__android_log_vprint+64)
	F DEBUG   :     #4 pc 000000000001350c  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (log_debug_nocheck(_LogCategories, char const*, ...)+204)
	F DEBUG   :     #5 pc 000000000000de6a  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::typemap_java_to_managed(char const*)+538)
	F DEBUG   :     #6 pc 000000000000df13  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::typemap_java_to_managed(_MonoString*)+99)
	F DEBUG   :     #7 pc 00000000000d57f8  <anonymous:0000000042d04000>

Add the missing parameter to prevent the `SIGSEGV` from happening.n a017561 may lead
to a segfault when `assembly` log category and `debug` log level are
enabled:

		F libc    : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3 in tid 922 (DrawableTinting), pid 922 (DrawableTinting)
		I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
		I /system/bin/tombstoned: received crash request for pid 922
		I crash_dump64: performing dump of process 922 (target tid = 922)
		F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
		F DEBUG   : Build fingerprint: 'Android/sdk_phone_x86_64/generic_x86_64:9/PSR1.180720.012/4923214:userdebug/test-keys'
		F DEBUG   : Revision: '0'
		F DEBUG   : ABI: 'x86_64'
		F DEBUG   : pid: 922, tid: 922, name: DrawableTinting  >>> com.xamarin.DrawableTinting <<<
		F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3
		F DEBUG   : Cause: null pointer dereference
		F DEBUG   :     rax 0000000000000000  rbx 00007ffed3c283c0  rcx 0000000000000003  rdx 0000000000000002
		F DEBUG   :     r8  00007ffed3c283c0  r9  00000000ffffffff  r10 00007ffed3c283d0  r11 00007ffed3c28824
		F DEBUG   :     r12 00007c88774a2f17  r13 00000000ffffffff  r14 0000000000000000  r15 00007ffed3c283d0
		F DEBUG   :     rdi 0000000000000003  rsi 00007ffed3c283bb
		F DEBUG   :     rbp 00007ffed3c28f18  rsp 00007ffed3c28288  rip 00007c890f860761
		F DEBUG   :
		F DEBUG   : backtrace:
		F DEBUG   :     #00 pc 0000000000020761  /system/lib64/libc.so (strlen+17)
		F DEBUG   :     #1 pc 000000000006e761  /system/lib64/libc.so (__vfprintf+5953)
		F DEBUG   :     #2 pc 000000000008df5d  /system/lib64/libc.so (vsnprintf+189)
		F DEBUG   :     #3 pc 0000000000007b60  /system/lib64/liblog.so (__android_log_vprint+64)
		F DEBUG   :     #4 pc 000000000001350c  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (log_debug_nocheck(_LogCategories, char const*, ...)+204)
		F DEBUG   :     #5 pc 000000000000de6a  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::typemap_java_to_managed(char const*)+538)
		F DEBUG   :     #6 pc 000000000000df13  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::typemap_java_to_managed(_MonoString*)+99)
		F DEBUG   :     #7 pc 00000000000d57f8  <anonymous:0000000042d04000>

Add the missing parameter to prevent the `SIGSEGV` from happening.
jonpryor pushed a commit that referenced this pull request May 12, 2020
…4673)

Fixes: #4596
Context: a017561
Context: https://gist.github.com/pjcollins/87762e81f1f3c7e8b821356e4612eecf

A missing parameter in a call to `log_debug` added iFixes: #4596
Context: a017561
Context: https://gist.github.com/pjcollins/87762e81f1f3c7e8b821356e4612eecf

A missing parameter in a call to `log_debug()` added in a017561 may
lead to a segfault when `assembly` log category and `debug` log level
are enabled:

	F libc    : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3 in tid 922 (DrawableTinting), pid 922 (DrawableTinting)
	I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
	I /system/bin/tombstoned: received crash request for pid 922
	I crash_dump64: performing dump of process 922 (target tid = 922)
	F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
	F DEBUG   : Build fingerprint: 'Android/sdk_phone_x86_64/generic_x86_64:9/PSR1.180720.012/4923214:userdebug/test-keys'
	F DEBUG   : Revision: '0'
	F DEBUG   : ABI: 'x86_64'
	F DEBUG   : pid: 922, tid: 922, name: DrawableTinting  >>> com.xamarin.DrawableTinting <<<
	F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3
	F DEBUG   : Cause: null pointer dereference
	F DEBUG   :     rax 0000000000000000  rbx 00007ffed3c283c0  rcx 0000000000000003  rdx 0000000000000002
	F DEBUG   :     r8  00007ffed3c283c0  r9  00000000ffffffff  r10 00007ffed3c283d0  r11 00007ffed3c28824
	F DEBUG   :     r12 00007c88774a2f17  r13 00000000ffffffff  r14 0000000000000000  r15 00007ffed3c283d0
	F DEBUG   :     rdi 0000000000000003  rsi 00007ffed3c283bb
	F DEBUG   :     rbp 00007ffed3c28f18  rsp 00007ffed3c28288  rip 00007c890f860761
	F DEBUG   :
	F DEBUG   : backtrace:
	F DEBUG   :     #00 pc 0000000000020761  /system/lib64/libc.so (strlen+17)
	F DEBUG   :     #1 pc 000000000006e761  /system/lib64/libc.so (__vfprintf+5953)
	F DEBUG   :     #2 pc 000000000008df5d  /system/lib64/libc.so (vsnprintf+189)
	F DEBUG   :     #3 pc 0000000000007b60  /system/lib64/liblog.so (__android_log_vprint+64)
	F DEBUG   :     #4 pc 000000000001350c  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (log_debug_nocheck(_LogCategories, char const*, ...)+204)
	F DEBUG   :     #5 pc 000000000000de6a  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::typemap_java_to_managed(char const*)+538)
	F DEBUG   :     #6 pc 000000000000df13  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::typemap_java_to_managed(_MonoString*)+99)
	F DEBUG   :     #7 pc 00000000000d57f8  <anonymous:0000000042d04000>

Add the missing parameter to prevent the `SIGSEGV` from happening.n a017561 may lead
to a segfault when `assembly` log category and `debug` log level are
enabled:

		F libc    : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3 in tid 922 (DrawableTinting), pid 922 (DrawableTinting)
		I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
		I /system/bin/tombstoned: received crash request for pid 922
		I crash_dump64: performing dump of process 922 (target tid = 922)
		F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
		F DEBUG   : Build fingerprint: 'Android/sdk_phone_x86_64/generic_x86_64:9/PSR1.180720.012/4923214:userdebug/test-keys'
		F DEBUG   : Revision: '0'
		F DEBUG   : ABI: 'x86_64'
		F DEBUG   : pid: 922, tid: 922, name: DrawableTinting  >>> com.xamarin.DrawableTinting <<<
		F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3
		F DEBUG   : Cause: null pointer dereference
		F DEBUG   :     rax 0000000000000000  rbx 00007ffed3c283c0  rcx 0000000000000003  rdx 0000000000000002
		F DEBUG   :     r8  00007ffed3c283c0  r9  00000000ffffffff  r10 00007ffed3c283d0  r11 00007ffed3c28824
		F DEBUG   :     r12 00007c88774a2f17  r13 00000000ffffffff  r14 0000000000000000  r15 00007ffed3c283d0
		F DEBUG   :     rdi 0000000000000003  rsi 00007ffed3c283bb
		F DEBUG   :     rbp 00007ffed3c28f18  rsp 00007ffed3c28288  rip 00007c890f860761
		F DEBUG   :
		F DEBUG   : backtrace:
		F DEBUG   :     #00 pc 0000000000020761  /system/lib64/libc.so (strlen+17)
		F DEBUG   :     #1 pc 000000000006e761  /system/lib64/libc.so (__vfprintf+5953)
		F DEBUG   :     #2 pc 000000000008df5d  /system/lib64/libc.so (vsnprintf+189)
		F DEBUG   :     #3 pc 0000000000007b60  /system/lib64/liblog.so (__android_log_vprint+64)
		F DEBUG   :     #4 pc 000000000001350c  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (log_debug_nocheck(_LogCategories, char const*, ...)+204)
		F DEBUG   :     #5 pc 000000000000de6a  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::typemap_java_to_managed(char const*)+538)
		F DEBUG   :     #6 pc 000000000000df13  /data/app/com.xamarin.DrawableTinting-zvchh4ya_DW11GfpEPFICw==/lib/x86_64/libmonodroid.so (xamarin::android::internal::EmbeddedAssemblies::typemap_java_to_managed(_MonoString*)+99)
		F DEBUG   :     #7 pc 00000000000d57f8  <anonymous:0000000042d04000>

Add the missing parameter to prevent the `SIGSEGV` from happening.
grendello added a commit to grendello/xamarin-android that referenced this pull request Nov 22, 2022
It won't fix the failure, but extra logging might be useful at some
point. The current failure is:

    droid.NET_Test: java_vm_ext.cc:570] JNI DETECTED ERROR IN APPLICATION: use of invalid jobject 0x7100941bb830
    backtrace:
           #00 pc 00000000000943f8  /apex/com.android.runtime/lib64/bionic/libc.so (syscall+24) (BuildId: a08a19770d6696739c847e29c3f5f650)
           #1 pc 0000000000097146  /apex/com.android.runtime/lib64/bionic/libc.so (abort+182) (BuildId: a08a19770d6696739c847e29c3f5f650)
           #2 pc 000000000055321f  /apex/com.android.runtime/lib64/libart.so (art::Runtime::Abort(char const*)+2399) (BuildId: 8bb3225e7c408f2ca23abac3db0417f2)
           #3 pc 000000000000c873  /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+611) (BuildId: 40d2b536dbf0730fdc31abd2b469f94f)
           dotnet#4 pc 00000000003ede64  /apex/com.android.runtime/lib64/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1604) (BuildId: 8bb3225e7c408f2ca23abac3db0417f2)
           dotnet#5 pc 00000000003ee16a  /apex/com.android.runtime/lib64/libart.so (art::JavaVMExt::JniAbortF(char const*, char const*, ...)+234) (BuildId: 8bb3225e7c408f2ca23abac3db0417f2)
           dotnet#6 pc 00000000005adf7b  /apex/com.android.runtime/lib64/libart.so (art::Thread::DecodeJObject(_jobject*) const+875) (BuildId: 8bb3225e7c408f2ca23abac3db0417f2)
           dotnet#7 pc 00000000003def7b  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::CheckInstance(art::ScopedObjectAccess&, art::(anonymous namespace)::ScopedCheck::InstanceKind, _jobject*, bool)+91) (BuildId: 8bb3225e7c408f2ca23abac3db0417f2)
           dotnet#8 pc 00000000003de1e5  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::CheckPossibleHeapValue(art::ScopedObjectAccess&, char, art::(anonymous namespace)::JniValueType)+485) (BuildId: 8bb3225e7c408f2ca23abac3db0417f2)
           dotnet#9 pc 00000000003de2d4  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::CheckPossibleHeapValue(art::ScopedObjectAccess&, char, art::(anonymous namespace)::JniValueType)+724) (BuildId: 8bb3225e7c408f2ca23abac3db0417f2)
           dotnet#10 pc 00000000003dd712  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::(anonymous namespace)::JniValueType*)+690) (BuildId: 8bb3225e7c408f2ca23abac3db0417f2)
           dotnet#11 pc 00000000003e28c0  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::CheckJNI::CheckCallArgs(art::ScopedObjectAccess&, art::(anonymous namespace)::ScopedCheck&, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, art::InvokeType, art::(anonymous namespace)::VarArgs const*)+160) (BuildId: 8bb3225e7c408f2ca23abac3db0417f2)
           dotnet#12 pc 00000000003e1a9e  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::CheckJNI::CallMethodV(char const*, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, __va_list_tag*, art::Primitive::Type, art::InvokeType)+910) (BuildId: 8bb3225e7c408f2ca23abac3db0417f2)
           dotnet#13 pc 00000000003cf551  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::CheckJNI::CallObjectMethod(_JNIEnv*, _jobject*, _jmethodID*, ...)+177) (BuildId: 8bb3225e7c408f2ca23abac3db0417f2)
           dotnet#14 pc 00000000000013ec  /data/app/Mono.Android.NET_Tests--O9vgexkYeCx3nX-AuvLTQ==/split_config.x86_64.apk!libreuse-threads.so (offset 0xa8d000) (BuildId: 562d86d81ebdd3bb6b7528e2a9235ff84827294e)
           dotnet#15 pc 0000000000100fce  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+30) (BuildId: a08a19770d6696739c847e29c3f5f650)
           dotnet#16 pc 0000000000098fe7  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+55) (BuildId: a08a19770d6696739c847e29c3f5f650)
jonpryor pushed a commit that referenced this pull request Jul 13, 2023
Context: 929e701
Context: ce2bc68
Context: #7473
Context: #8155

The managed linker can produce assemblies optimized for the target
`$(RuntimeIdentifier)` (RID), which means that they will differ
between different RIDs.  Our "favorite" example of this is
`IntPtr.Size`, which is inlined by the linker into `4` or `8` when
targeting 32-bit or 64-bit platforms.  (See also #7473 and 929e701.)

Another platform difference may come in the shape of CPU intrinsics
which will change the JIT-generated native code in ways that will
crash the application if the assembler instructions generated for the
intrinsics aren't supported by the underlying processor.

In addition, the per-RID assemblies will have different [MVID][0]s
and **may** have different type and method metadata token IDs, which
is important because typemaps *use* type and metadata token IDs; see
also ce2bc68.

All of this taken together invalidates our previous assumption that
all the managed assemblies are identical.  "Simply" using
`IntPtr.Size` in an assembly that contains `Java.Lang.Object`
subclasses will break things.

This in turn could cause "mysterious" behavior or crashes in Release
applications; see also Issue #8155.

Prevent the potential problems by processing each per-RID assembly
separately and output correct per-RID LLVM IR assembly using the
appropriate per-RID information.

Additionally, during testing I found that for our use of Cecil within
`<GenerateJavaStubs/>` doesn't consistently remove the fields,
delegates, and methods we remove in `MarshalMethodsAssemblyRewriter`
when marshal methods are enabled, or it generates subtly broken
assemblies which cause **some** applications to segfault at run time
like so:

	I monodroid-gc: 1 outstanding GREFs. Performing a full GC!
	F libc    : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x8 in tid 12379 (t6.helloandroid), pid 12379 (t6.helloandroid)
	F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
	F DEBUG   : Build fingerprint: 'google/raven_beta/raven:14/UPB3.230519.014/10284690:user/release-keys'
	F DEBUG   : Revision: 'MP1.0'
	F DEBUG   : ABI: 'arm64'
	F DEBUG   : Timestamp: 2023-07-04 22:09:58.762982002+0200
	F DEBUG   : Process uptime: 1s
	F DEBUG   : Cmdline: com.microsoft.net6.helloandroid
	F DEBUG   : pid: 12379, tid: 12379, name: t6.helloandroid  >>> com.microsoft.net6.helloandroid <<<
	F DEBUG   : uid: 10288
	F DEBUG   : tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
	F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0000000000000008
	F DEBUG   : Cause: null pointer dereference
	F DEBUG   :     x0  0000000000000000  x1  0000007ba1401af0  x2  00000000000000fa  x3  0000000000000001
	F DEBUG   :     x4  0000007ba1401b38  x5  0000007b9f2a8360  x6  0000000000000000  x7  0000000000000000
	F DEBUG   :     x8  ffffffffffc00000  x9  0000007b9f800000  x10 0000000000000000  x11 0000007ba1400000
	F DEBUG   :     x12 0000000000000000  x13 0000007ba374ad58  x14 0000000000000000  x15 00000013ead77d66
	F DEBUG   :     x16 0000007ba372f210  x17 0000007ebdaa4a80  x18 0000007edf612000  x19 000000000000001f
	F DEBUG   :     x20 0000000000000000  x21 0000007b9f2a8320  x22 0000007b9fb02000  x23 0000000000000018
	F DEBUG   :     x24 0000007ba374ad08  x25 0000000000000004  x26 0000007b9f2a4618  x27 0000000000000000
	F DEBUG   :     x28 ffffffffffffffff  x29 0000007fc592a780
	F DEBUG   :     lr  0000007ba3701f44  sp  0000007fc592a730  pc  0000007ba3701e0c  pst 0000000080001000
	F DEBUG   : 8 total frames
	F DEBUG   : backtrace:
	F DEBUG   :       #00 pc 00000000002d4e0c  /data/app/~~Av24J15xbf20XdrY3X2_wA==/com.microsoft.net6.helloandroid-4DusuNWIAkz1Ssi7fWVF-g==/lib/arm64/libmonosgen-2.0.so (BuildId: 761134f2369377582cc3a8e25ecccb43a2e0a877)
	F DEBUG   :       #1 pc 00000000002c29e8  /data/app/~~Av24J15xbf20XdrY3X2_wA==/com.microsoft.net6.helloandroid-4DusuNWIAkz1Ssi7fWVF-g==/lib/arm64/libmonosgen-2.0.so (BuildId: 761134f2369377582cc3a8e25ecccb43a2e0a877)
	F DEBUG   :       #2 pc 00000000002c34bc  /data/app/~~Av24J15xbf20XdrY3X2_wA==/com.microsoft.net6.helloandroid-4DusuNWIAkz1Ssi7fWVF-g==/lib/arm64/libmonosgen-2.0.so (BuildId: 761134f2369377582cc3a8e25ecccb43a2e0a877)
	F DEBUG   :       #3 pc 00000000002c2254  /data/app/~~Av24J15xbf20XdrY3X2_wA==/com.microsoft.net6.helloandroid-4DusuNWIAkz1Ssi7fWVF-g==/lib/arm64/libmonosgen-2.0.so (BuildId: 761134f2369377582cc3a8e25ecccb43a2e0a877)
	F DEBUG   :       #4 pc 00000000002be0bc  /data/app/~~Av24J15xbf20XdrY3X2_wA==/com.microsoft.net6.helloandroid-4DusuNWIAkz1Ssi7fWVF-g==/lib/arm64/libmonosgen-2.0.so (BuildId: 761134f2369377582cc3a8e25ecccb43a2e0a877)
	F DEBUG   :       #5 pc 00000000002bf050  /data/app/~~Av24J15xbf20XdrY3X2_wA==/com.microsoft.net6.helloandroid-4DusuNWIAkz1Ssi7fWVF-g==/lib/arm64/libmonosgen-2.0.so (BuildId: 761134f2369377582cc3a8e25ecccb43a2e0a877)
	F DEBUG   :       #6 pc 00000000002a53a4  /data/app/~~Av24J15xbf20XdrY3X2_wA==/com.microsoft.net6.helloandroid-4DusuNWIAkz1Ssi7fWVF-g==/lib/arm64/libmonosgen-2.0.so (mono_gc_collect+44) (BuildId: 761134f2369377582cc3a8e25ecccb43a2e0a877)
	F DEBUG   :       #7 pc 000000000000513c  <anonymous:7ec716b000>

This is because we generate Java Callable Wrappers over a set of
original (linked or not) assemblies, then we scan them for classes
derived from `Java.Lang.Object` and use that set as input to the
marshal methods rewriter, which makes the changes (generates wrapper
methods, decorates wrapped methods with `[UnmanagedCallersOnly]`,
removes the old delegate methods as well as delegate backing fields)
to all the `Java.Lang.Object` subclasses, then writes the modified
assembly to a `new/<assembly.dll>` location (efa14e2), followed by
copying the newly written assemblies back to the original location.
At this point, we have the results returned by the subclass scanner
in memory and **new** versions of those types on disk, but they are
out of sync, since the types in memory refer to the **old** assemblies,
but AOT is ran on the **new** assemblies which have a different layout,
changed MVIDs and, potentially, different type and method token IDs
(because we added some methods, removed others etc) and thus it causes
the crashes at the run time.  The now invalid set of "old" types is
passed to the typemap generator.  This only worked by accident, because
we (incorrectly) used only the first linked assembly which happened
to be the same one passed to the JLO scanner and AOT - so everything
was fine at the execution time.

Address this by *disabling* LLVM Marshal Methods (8bc7a3e) for .NET 8,
setting `$(AndroidEnableMarshalMethods)`=False by default.
We'll attempt to fix these issues for .NET 9.

[0]: https://learn.microsoft.com/dotnet/api/system.reflection.module.moduleversionid?view=net-7.0
jonpryor added a commit that referenced this pull request Jan 26, 2024
Context: dotnet/java-interop@6b3637d

The story so far is that some of our unit tests are crashing, and
have been in one form or another since 4332ea0
(the bump to dotnet/java-interop@def5bc0).

The current crash, from the PR build for 7b46391:

	D monodroid-assembly: typemap: assembly 'Java.Interop-Tests' hasn't been loaded yet, attempting a full load
	W monodroid-assembly: typemap: failed to load managed assembly 'Java.Interop-Tests.dll'. No such file or directory
	E monodroid-assembly: typemap: unable to load assembly 'Java.Interop-Tests' when looking up managed type corresponding to Java type 'java/lang/Object'
	I monodroid-timing: [1/5] Typemap.java_to_managed: end, total time; elapsed: 0:0::260000
	W monodroid-assembly: typemap: called from
	W monodroid-assembly: at Java.Interop.TypeManager.GetJavaToManagedType(String )
	W monodroid-assembly:    at Java.Interop.TypeManager.CreateInstance(IntPtr , JniHandleOwnership , Type )
	W monodroid-assembly:    at Java.Lang.Object.GetObject(IntPtr , JniHandleOwnership , Type )
	W monodroid-assembly:    at Java.Lang.Object._GetObject[IIterator](IntPtr , JniHandleOwnership )
	W monodroid-assembly:    at Java.Lang.Object.GetObject[IIterator](IntPtr handle, JniHandleOwnership transfer)
	W monodroid-assembly:    at Android.Runtime.JavaSet.Iterator()
	W monodroid-assembly:    at Android.Runtime.JavaSet`1[[System.String, System.Private.CoreLib, Version=9.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].GetEnumerator()
	W monodroid-assembly:    at Xamarin.Android.UnitTests.TestInstrumentation`1[[Xamarin.Android.UnitTests.NUnit.NUnitTestRunner, TestRunner.NUnit.NET, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].ProcessArguments()
	W monodroid-assembly:    at Xamarin.Android.UnitTests.TestInstrumentation`1[[Xamarin.Android.UnitTests.NUnit.NUnitTestRunner, TestRunner.NUnit.NET, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].OnCreate(Bundle arguments)
	W monodroid-assembly:    at Android.App.Instrumentation.n_OnCreate_Landroid_os_Bundle_(IntPtr jnienv, IntPtr native__this, IntPtr native_arguments)
	W monodroid-assembly:    at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_V(_JniMarshal_PPL_V callback, IntPtr jnienv, IntPtr klazz, IntPtr p0)
	E droid.NET_Test: JNI ERROR (app bug): accessed stale Local 0x75  (index 7 in a table of size 7)
	F droid.NET_Test: java_vm_ext.cc:570] JNI DETECTED ERROR IN APPLICATION: use of deleted local reference 0x75

There are *three* "concerning" items here:

 1. typemaps are trying to load `Java.Interop-Tests`, and failing:

        typemap: failed to load managed assembly 'Java.Interop-Tests.dll'. No such file or directory

    @grendello is looking into this.

 2. The binding for `java/lang/Object` is coming from
    Java.Interop-Tests, not Mono.Android (?!)

        typemap: unable to load assembly 'Java.Interop-Tests' when looking up managed type corresponding to Java type 'java/lang/Object'

    dotnet/java-interop#1181 has a fix for this, and we're not
    applying the fix yet because we believe that it will hide (1).

 3. The JNI error, which crashes the process:

        F droid.NET_Test: java_vm_ext.cc:570] JNI DETECTED ERROR IN APPLICATION: use of deleted local reference 0x75
        F droid.NET_Test: java_vm_ext.cc:570]     from void crc643df67da7b13bb6b1.TestInstrumentation_1.n_onCreate(android.os.Bundle)
        F droid.NET_Test: runtime.cc:630] Runtime aborting...
        F droid.NET_Test: runtime.cc:630] Dumping all threads without mutator lock held
        F droid.NET_Test: runtime.cc:630] All threads:
        F droid.NET_Test: runtime.cc:630] DALVIK THREADS (14):
        F droid.NET_Test: runtime.cc:630] "main" prio=5 tid=1 Runnable
        F droid.NET_Test: runtime.cc:630]   | group="" sCount=0 dsCount=0 flags=0 obj=0x729e9d98 self=0x7567e0f51000
        F droid.NET_Test: runtime.cc:630]   | sysTid=9143 nice=0 cgrp=default sched=0/0 handle=0x7567e14daed8
        F droid.NET_Test: runtime.cc:630]   | state=R schedstat=( 1270418000 334229000 139 ) utm=16 stm=110 core=0 HZ=100
        F droid.NET_Test: runtime.cc:630]   | stack=0x7ffcbb3e4000-0x7ffcbb3e6000 stackSize=8192KB
        F droid.NET_Test: runtime.cc:630]   | held mutexes= "abort lock" "mutator lock"(shared held)
        F droid.NET_Test: runtime.cc:630]   native: #00 pc 000000000048df4e  /apex/com.android.runtime/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+126)
        F droid.NET_Test: runtime.cc:630]   native: #1 pc 00000000005a77c3  /apex/com.android.runtime/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+675)
        F droid.NET_Test: runtime.cc:630]   native: #2 pc 00000000005c49cb  /apex/com.android.runtime/lib64/libart.so (art::DumpCheckpoint::Run(art::Thread*)+859)
        F droid.NET_Test: runtime.cc:630]   native: #3 pc 00000000005bcf28  /apex/com.android.runtime/lib64/libart.so (art::ThreadList::RunCheckpoint(art::Closure*, art::Closure*)+456)
        F droid.NET_Test: runtime.cc:630]   native: #4 pc 00000000005bc2e1  /apex/com.android.runtime/lib64/libart.so (art::ThreadList::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool)+1601)
        F droid.NET_Test: runtime.cc:630]   native: #5 pc 0000000000552eb9  /apex/com.android.runtime/lib64/libart.so (art::Runtime::Abort(char const*)+1529)
        F droid.NET_Test: runtime.cc:630]   native: #6 pc 000000000000c873  /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+611)
        F droid.NET_Test: runtime.cc:630]   native: #7 pc 00000000003ede84  /apex/com.android.runtime/lib64/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1604)
        F droid.NET_Test: runtime.cc:630]   native: #8 pc 00000000003ee18a  /apex/com.android.runtime/lib64/libart.so (art::JavaVMExt::JniAbortF(char const*, char const*, ...)+234)
        F droid.NET_Test: runtime.cc:630]   native: #9 pc 00000000005adf31  /apex/com.android.runtime/lib64/libart.so (art::Thread::DecodeJObject(_jobject*) const+785)
        F droid.NET_Test: runtime.cc:630]   native: #10 pc 00000000003def9b  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::CheckInstance(art::ScopedObjectAccess&, art::(anonymous namespace)::ScopedCheck::InstanceKind, _jobject*, bool)+91)
        F droid.NET_Test: runtime.cc:630]   native: #11 pc 00000000003de205  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::CheckPossibleHeapValue(art::ScopedObjectAccess&, char, art::(anonymous namespace)::JniValueType)+485)
        F droid.NET_Test: runtime.cc:630]   native: #12 pc 00000000003dd732  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::(anonymous namespace)::JniValueType*)+690)
        F droid.NET_Test: runtime.cc:630]   native: #13 pc 00000000003ce865  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::CheckJNI::GetObjectClass(_JNIEnv*, _jobject*)+837)
        F droid.NET_Test: runtime.cc:630]   native: #14 pc 0000000000017196  /data/app/Mono.Android.NET_Tests-LUUW792fOvX745oAS4jeRQ==/split_config.x86_64.apk (offset 331000) (???)
        F droid.NET_Test: runtime.cc:630]   at crc643df67da7b13bb6b1.TestInstrumentation_1.n_onCreate(Native method)

As per `native #13`, we're (somehow) passing an invalid JNI reference
to `JNIEnv::GetObjectClass()`.

***HOW*** are we passing an invalid JNI reference to
`JNIEnv::GetObjectClass()`?

Attempt to investigate (3) further, by:

 1. Reviewing all calls to `JNIEnv::GetObjectClass()` within this
    repo to see if we could potentially be passing an invalid value.
    The "most obvious" candidate is `TypeManager.CreateInstance()`,
    which calls `JNIEnv::GetObjectClass()` in a loop.

    I'm still not sure if that could possibly be the cause, but
    Just In Case™…

    "Cleanup" some C++ code so that calls to
    `JNIEnv::DeleteLocalReference()` are closer to the
    `JNIEnv::GetObjectClass()` calls.

 2. Update
    `tests/Mono.Android-Tests/Runtime-Microsoft.Android.Sdk/Mono.Android.NET-Tests.csproj`
    to add an `@(AndroidEnvironment)` item, which sets
    `debug.mono.log=gref+,lref+`.  This will enable LREF and GREF
    logging within `adb logcat`, which *may* allow us to track down
    where "local reference 0x75" came from.
@github-actions github-actions bot locked and limited conversation to collaborators Feb 2, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants