Hello community, here is the log from the commit of package mono-core for openSUSE:Factory checked in at 2017-10-28 14:18:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mono-core (Old) and /work/SRC/openSUSE:Factory/.mono-core.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "mono-core" Sat Oct 28 14:18:55 2017 rev:113 rq:536289 version:5.4.0 Changes: -------- --- /work/SRC/openSUSE:Factory/mono-core/mono-core.changes 2017-10-02 16:50:22.862583560 +0200 +++ /work/SRC/openSUSE:Factory/.mono-core.new/mono-core.changes 2017-10-28 14:19:20.600687508 +0200 @@ -1,0 +2,112 @@ +Tue Oct 24 00:00:00 UTC 2017 - fwdsbs.to.11df@xoxy.net + +- Add bug-59608.patch: + * Fix bxc#59608 - Attribute MethodImplOptions.AggressiveInlining causes method to always return NULL + +------------------------------------------------------------------- +Fri Oct 20 00:00:00 UTC 2017 - fwdsbs.to.11df@xoxy.net + +- Add bug-57918.patch: + * Fix bxc#57918 - System.Net.Sockets.EndSend returns incorrect value + +------------------------------------------------------------------- +Tue Oct 17 00:00:00 UTC 2017 - fwdsbs.to.11df@xoxy.net + +- Update to version 5.4.0.201 (5.4.0 Stable) +- Minor packaging updates +- Remove patch: 0001-btls-Disable-BUILD_SHARED_LIBS-while-building-boring.patch +- Remove patch: fix-project-builds-linux.patch +- Add patch mcs-compatibility-fix.patch: + * When using deprecated MCS compiler to build Mono, convert incompatible C#6\C#7 code to C#5 analog in order to fix build errors. +- New features and changes: + * JIT Job Control: improve Roslyn performance + * Array element store optimization + * Load scalability improvements + * ValueType write barrier optimization + * Make jit method table resizing more scalable + * Reflection queries scalability improvements + * Intrisificy Marshal.PtrToStruct for blitable types + * Revamped unaligned memory access support + * Interpreter works in JIT restricted environments + * Interpreter supports ARM and ARM64 + * Class Libraries: integrated AppContextSwitch code from reference sources which allows all of its compat switches to be used, added reference assemblies for .NET Framework 4.7 to support builds targetting .NET 4.7. + * Tools: bundled nuget binary was updated to version 4.3.0, added packaging for roslyn-parts of msbuild. +- Bugfixes: + * bxc#580 - Type.Load loads strong type despite version mismatch + * bxc#17325 - RealProxy returns MarshalByRefObject for an Interface instead of the real interface type + * bxc#44907 - Applications crash on Nexus 9 devices only since Xamarin.Android 7.0.0.18 + * bxc#46482 - SIGSEGV at random code lines after application start on Nexus 9 with Xamarin Android 7 + * bxc#51791 - [XA] HTC Nexus 9 - app closes on launch + * bxc#52508 - TLS SignalR Self-host Hang + * bxc#53038 - SRE should fail more gracefully when SymbolWriter is missing + * bxc#53202 - Number minus Enum gives wrong value + * bxc#53244 - mcs generates ParamArrayAttribute when specifying “params” in overridden method where base doesn’t have it + * bxc#53792 - CFNetworkHandler reports correct download when internet connection is lost during request + * bxc#54159 - Compiler crashes when calling method named Finalize + * bxc#54322 - await in catch-block inside a loop causes the same exception to be caught multiple times + * bxc#54388 - InternalsVisibleTo is case sensitive + * bxc#54448 - Unable to revert to thread-local storage for CurrentThread.CultureInfo + * bxc#54485 - Creating an open generic type with recurrent constraint fails + * bxc#54658 - [iOS]BCL test failed with Assertion failures error: * Assertion at /Users/builder/data/lanes/4691/6bea7a5b/source/xamarin-macios/external/mono/mono/mini/aot-runtime.c:2924, condition `!async’ not met and condition `unwind_options == MONO_UNWIND_NONE’ not + * bxc#54976 - [iOS]fsharp test failing on iOS device with Assertion at /Users/builder/data/lanes/4691/9245c1c0/source/xamarin-macios/external/mono/mono/mini/mini-arm-gsharedvt.c:220, condition `src_slot < 16’ not met + * bxc#54991 - Cannot compile get => _text + * bxc#55041 - Stripping mscorlib in simple example changes IntPtr (5) behavior? + * bxc#55083 - coreclr test b353858.il fails after 6f33b62f39a273fccb78f71513cb5e0dfb987c70 + * bxc#55095 - Breakpoints not hit for ASP.NET MVC Project + * bxc#55348 - “using static” results in invalid compiler errors + * bxc#55400 - MCS produces incorrect code for generic instantiated with a gtd + * bxc#55436 - System.Runtime refuses to load with strict naming + * bxc#55577 - SIMD instructions with System.Numerics.Vectors do not work + * bxc#55603 - Follow-up to bug 52845: Satellite assemblies not loaded by app when using “Bundle assemblies into native code” even though they are now successfully mkbundled + * bxc#55604 - Incorrect struct size when using property setter + * bxc#55697 - .NET 2.0 style web services fail to build under msbuild in Release but work with xbuild + * bxc#56081 - Returning a valuetype from an async method with an awaited parameter yields a Mono.CSharp.InternalErrorException: Await yields with non-empty stack + * bxc#56111 - Hitting assertion after enabling AOT+LLVM on x86 devices in tramp-x86.c:124 + * bxc#56202 - [mono-2017-04]Apps fail to launch on 32 bit device with error EXC_ARM_DA_ALIGN at 0x0142ccec + * bxc#56240 - Performance Degradation When Using Expressions + * bxc#56242 - TypeTest.GetGenericMethodDefinitionOverInflatedMethodOnGTD throws NRE on Android in Release mode + * bxc#56247 - Enumerable.OrderByDescending behaves differently on LLVM FullAOT + * bxc#56452 - Problem Stack too big + * bxc#56462 - Custom operator causes internal compiler error + * bxc#56493 - Windows MMAP doesn’t release file + * bxc#56499 - DateTime.Now throws exception if /etc/localtime symlink destination missing + * bxc#56567 - Passing large struct into exception filter method crashes runtime with SIGSEGV + * bxc#56611 - Regression: ArrayTypeMismatchException when running F# script + * bxc#56616 - Missing CS1629 for unsafe code in iterators + * bxc#56627 - mcs inherits interface implementation, while csc doesn’t + * bxc#56684 - (mono-2.0-sgen.dll) in mono.exe: 0xC0000005: Access violation reading location 0x04FA3D9A. + * bxc#56694 - Assertion: should not be reached at d:\j\workspace\v\repos\mono\mono\sgen\sgen-scan-object.h:91 + * bxc#56814 - Xamarin.Mac.dll Memory Leak starting with 3.2.0.175 Release + * bxc#56821 - Static ctor of MarshalByRefObject runs in primary AppDomain + * bxc#56824 - Runtime crash with VSMEF + * bxc#57002 - New bockbuild package is missing .dSYM directories + * bxc#57222 - System.Reflection.AmbiguousMatchException for two fields with same name but different types + * bxc#57232 - Compiler error when using ternary operator and no whitespace + * bxc#57242 - [StructLayout (LayoutKind.Sequential, Pack = 1)] doesn’t work as expected + * bxc#57301 - Running IronPython’s executable under Mono 5.0.x causes a SIGSEGV on exit, this did not happen on 4.8 + * bxc#57496 - [Slovenian CultureInfo + others] .Parse throws exception when parsing negative values + * bxc#57505 - Missing error CS0165 in presence of commented line + * bxc#57629 - [io-layer] File.Delete () throws System.UnauthorizedAccessException on non-existing files on a read-only path + * bxc#57691 - InternalsVisibleTo doesn’t work with 2048-bit SNK files + * bxc#57744 - ReflectionTypeLoadException.LoaderExceptions has null exceptions + * bxc#57771 - F#.NET Core 2.0 projects do not compile + * bxc#57796 - Compiler Crash instead of CS1621 + * bxc#57850 - Mono assertion when ResolveEventHandler returns a reflection-only assembly + * bxc#57851 - Assertion if using ResolveEventHandler to find custom attributes + * bxc#57930 - Building netstandard 2.0 project throws DllNotFoundException: hostfxr during msbuild + * bxc#57959 - SIGSEGV in roslyn with corrupted stack + * bxc#58114 - [llvm] csc (Rolsyn) produce fault clauses that the llvm backend does not support + * bxc#58210 - “* Assertion at metadata.c:1048, condition `index < meta->heap_strings.size’ not met” is output on startup - works fine on Windows + * bxc#58344 - SIMD crash using System.Numerics.Vector + * bxc#58361 - EnumBuilder can no longer be used to generate IL code + * bxc#58399 - Delegates as collection key are ~500x slower than previously + * bxc#58421 - sre-save.c asserts in fixup_method () if TypeBuilder token is used across assemblies + * bxc#58446 - [iOS]EnumerableMoreTest.ConcatArgumentNullTest crash on tvOS device + * bxc#58454 - Cannot resolve method Subscription`1 Subscribe[TSelection](System.Func`2[TState,TSelection], System.Action`2[TSelection,TState]) because the declaring type of the method handle FSI_0002+Store`1[TState] is generic. Explicitly provide the declaring type to + * bxc#58738 - System.IO.MonoIO.Read - Native Crash when device file is gone + * bxc#58782 - Exception stack traces are deleted when reaching the native-to-managed wrapper in a reverse invoke + * bxc#58829 - Application Output Window being flooded with “[Mono] worker parking, [Mono] worker unparking” messages when debugging agasint Android Emulator + * bxc#59235 - [mono-2017-06] android.runtime.JavaProxyThrowable: System.ObjectDisposedException: Cannot access a disposed object. + * bxc#59274 - [Mac]A crash report is generated on closing mac apps + +------------------------------------------------------------------- Old: ---- 0001-btls-Disable-BUILD_SHARED_LIBS-while-building-boring.patch fix-project-builds-linux.patch mono-5.2.0.224.tar.bz2 New: ---- bug-57918.patch bug-59608.patch mcs-compatibility-fix.patch mono-5.4.0.201.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mono-core.spec ++++++ --- /var/tmp/diff_new_pack.m3fUR7/_old 2017-10-28 14:19:26.488472226 +0200 +++ /var/tmp/diff_new_pack.m3fUR7/_new 2017-10-28 14:19:26.492472080 +0200 @@ -26,7 +26,7 @@ %define boehm yes %endif -%ifarch %ix86 x86_64 +%ifarch %ix86 x86_64 armv7l armv7hl aarch64 %define btls yes %else %define btls no @@ -38,10 +38,10 @@ %define roslyn no %endif -%define version_suffix 224 +%define version_suffix 201 Name: mono-core -Version: 5.2.0 +Version: 5.4.0 Release: 0 Summary: Cross-platform, Open Source, .NET development framework License: LGPL-2.1 and MIT and MS-PL @@ -56,16 +56,18 @@ Patch1: ucontext.patch # PATCH-FIX-UPSTREAM search provides (for RPM-packaging) not only for GAC dir, but also for "Facades" and "4.5" mono-libdirs Patch2: provides-facades.patch -# PATCH-FIX-UPSTREAM disable BUILD_SHARED_LIBS while building boringssl, so its symbols are not exported from the btls shared lib (https://github.com/mono/mono/commit/e6e0fb82261340f9181d1b2b11a9706a16c5dbc7) -Patch3: 0001-btls-Disable-BUILD_SHARED_LIBS-while-building-boring.patch -# PATCH-FIX-UPSTREAM fix finding nuget packages in lower-case dirs on case-sensitive filesystems (https://github.com/mono/NuGet.BuildTasks/commit/112685a925e5c0d26fcf9c900634...) -Patch4: fix-project-builds-linux.patch +# PATCH-FIX-UPSTREAM System.Net.Sockets.EndSend returns incorrect value. See https://bugzilla.xamarin.com/show_bug.cgi?id=57918 for more information +Patch3: bug-57918.patch +# PATCH-FIX-UPSTREAM Attribute MethodImplOptions.AggressiveInlining causes method to always return NULL, patch created from commits: https://github.com/mono/mono/commit/df4669b216cb331e3b151b9171deee89339d34e2 and https://github.com/mono/api-snapshot/commit/c1a7bd7e026c9280fcd9825227d7ddde... +Patch4: bug-59608.patch # PATCH-FIX-OPENSUSE remove checks for libmono in mono-find-provides and mono-find-requires scripts Patch14: find-deps-fix.patch # PATCH-FIX-OPENSUSE revert Microsoft.Build.Tasks library to use old mcs compiler. This will make xbuild to use old mcs instead of csc - patch is used when roslyn is unavailable for current platform (big-endian systems). Patch15: xbuild-revert-to-mcs.patch # PATCH-FIX-OPENSUSE add missing internal headers to distribution, this is necessary for mono-debugger package. (Seems this bug is caused by this upstream commit: https://github.com/mono/mono/commit/e71a7f33ef30a5bbd0047b37a95533d06c860846) Patch16: fix-dbg-headers.patch +# PATCH-FIX-OPENSUSE if using deprecated mcs compiler instead of roslyn-csc convert non-compatible c#6 and c#7 code to older c#5 analogs, so mcs can compile it without errors. +Patch17: mcs-compatibility-fix.patch BuildRequires: cmake BuildRequires: autoconf BuildRequires: automake @@ -186,10 +188,13 @@ Requires: timezone %define _use_internal_dependency_generator 0 + # mono now ships with precompiled roslyn components that will lead us to broken requires\provides # instead of filtering bigger list of broken requires\provides, filter initial filelist and disable precompiled binaries from evaluation %define roslyn_prefix %{buildroot}%{_prefix}/lib/mono/4.5 -%define filtered_filelist printf "%s\\n" "${filelist[@]}" | grep -v "%{roslyn_prefix}/Microsoft.CodeAnalysis.CSharp.dll" | grep -v "%{roslyn_prefix}/Microsoft.CodeAnalysis.dll" | grep -v "%{roslyn_prefix}/System.Collections.Immutable.dll" | grep -v "%{roslyn_prefix}/System.Reflection.Metadata.dll" | grep -v "%{roslyn_prefix}/csc.exe" | cat - +%define msbuild_prefix %{buildroot}%{_prefix}/lib/mono/msbuild/15.0/bin/Roslyn +%define filtered_filelist printf "%s\\n" "${filelist[@]}" | grep -v "%{roslyn_prefix}/Microsoft.CodeAnalysis" | grep -v "%{roslyn_prefix}/Microsoft.Build.Tasks.CodeAnalysis.dll" | grep -v "%{roslyn_prefix}/System.Collections.Immutable.dll" | grep -v "%{roslyn_prefix}/System.Reflection.Metadata.dll" | grep -v "%{roslyn_prefix}/csc.exe" | grep -v "%{roslyn_prefix}/csi.exe" | grep -v "%{roslyn_prefix}/VBCSCompiler.exe" | grep -v "%{msbuild_prefix}/Microsoft.CodeAnalysis" | grep -v "%{msbuild_prefix}/Microsoft.Build.Tasks.CodeAnalysis.dll" | grep -v "%{msbuild_prefix}/System.Collections.Immutable.dll" | grep -v "%{msbuild_prefix}/System.Reflection.Metadata.dll" | grep -v "%{msbuild_prefix}/csc.exe" | grep -v "%{msbuild_prefix}/csi.exe" | grep -v "%{msbuild_prefix}/VBCSCompiler.exe" | cat - + %define __find_provides env sh -c 'filelist=($(cat)) && { %{filtered_filelist} | /usr/lib/rpm/find-provides && %{filtered_filelist} | prefix=%{buildroot}%{_prefix} %{buildroot}%{_bindir}/mono-find-provides ; } | sort | uniq' %define __find_requires env sh -c 'filelist=($(cat)) && { %{filtered_filelist} | /usr/lib/rpm/find-requires && %{filtered_filelist} | prefix=%{buildroot}%{_prefix} %{buildroot}%{_bindir}/mono-find-requires ; } | sort | uniq' @@ -210,6 +215,7 @@ %patch16 -p1 %if %roslyn == no %patch15 -p1 +%patch17 -p1 %endif %build @@ -260,9 +266,6 @@ %ifnarch %ix86 x86_64 --disable-system-aot \ %endif -%if %btls == yes - --enable-dynamic-btls \ -%endif %if %roslyn == no --with-csc=mcs \ %endif @@ -331,8 +334,15 @@ rm -v %{buildroot}%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.dll* rm -v %{buildroot}%{_prefix}/lib/mono/4.5/System.Collections.Immutable.dll* rm -v %{buildroot}%{_prefix}/lib/mono/4.5/System.Reflection.Metadata.dll* +rm -v %{buildroot}%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.Scripting.dll* +rm -v %{buildroot}%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.Scripting.dll* +rm -v %{buildroot}%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.VisualBasic.dll* +rm -v %{buildroot}%{_prefix}/lib/mono/4.5/VBCSCompiler.* rm -v %{buildroot}%{_prefix}/lib/mono/4.5/csc.* +rm -v %{buildroot}%{_prefix}/lib/mono/4.5/csi.* rm -v %{buildroot}%{_bindir}/csc +rm -v %{buildroot}%{_bindir}/csi +rm -rfv %{msbuild_prefix} %endif %fdupes %{buildroot}%{_prefix} @@ -514,11 +524,17 @@ %endif %if %roslyn == yes %{_bindir}/csc +%{_bindir}/csi %{_prefix}/lib/mono/4.5/csc.* +%{_prefix}/lib/mono/4.5/csi.* %{_prefix}/lib/mono/4.5/System.Collections.Immutable.dll* %{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.dll* %{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.dll* +%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.Scripting.dll* +%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.Scripting.dll* +%{_prefix}/lib/mono/4.5/Microsoft.CodeAnalysis.VisualBasic.dll* %{_prefix}/lib/mono/4.5/System.Reflection.Metadata.dll* +%{_prefix}/lib/mono/4.5/VBCSCompiler.* %{_prefix}/lib/mono/4.5/al.pdb %{_prefix}/lib/mono/4.5/cert-sync.pdb %{_prefix}/lib/mono/4.5/certmgr.pdb @@ -1439,6 +1455,7 @@ %dir %{_libdir}/mono/ %{_libdir}/mono/lldb %if %roslyn == yes +%{_prefix}/lib/mono/msbuild %{_prefix}/lib/mono/4.5/caspol.pdb %{_prefix}/lib/mono/4.5/cccheck.pdb %{_prefix}/lib/mono/4.5/ccrewrite.pdb ++++++ bug-57918.patch ++++++
From b2250d8ecf56f71ea4c2c7271ac138d1f0196136 Mon Sep 17 00:00:00 2001 From: Katelyn Gadd
Date: Mon, 11 Sep 2017 17:26:04 -0700 Subject: [PATCH] Fix bug 57918: Async Socket reads that need to perform multiple underlying read operations fail to return a correct total # of bytes read
---
mcs/class/System/System.Net.Sockets/Socket.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mcs/class/System/System.Net.Sockets/Socket.cs b/mcs/class/System/System.Net.Sockets/Socket.cs
index d19756b6c300..3821602fbbda 100644
--- a/mcs/class/System/System.Net.Sockets/Socket.cs
+++ b/mcs/class/System/System.Net.Sockets/Socket.cs
@@ -1902,7 +1902,7 @@ static void BeginSendCallback (SocketAsyncResult sockares, int sent_so_far)
sockares.Size -= total;
if (sockares.socket.CleanedUp) {
- sockares.Complete (total);
+ sockares.Complete (sent_so_far);
return;
}
@@ -1914,7 +1914,7 @@ static void BeginSendCallback (SocketAsyncResult sockares, int sent_so_far)
sockares.Total = sent_so_far;
}
- sockares.Complete (total);
+ sockares.Complete (sent_so_far);
}
[CLSCompliant (false)]
++++++ bug-59608.patch ++++++
diff -uprN mono-5.4.0.201/external/api-snapshot/profiles/net_4_x/PEAPI.cs mono-5.4.0.201.new/external/api-snapshot/profiles/net_4_x/PEAPI.cs
--- mono-5.4.0.201/external/api-snapshot/profiles/net_4_x/PEAPI.cs 2017-10-04 18:31:32.000000000 +0300
+++ mono-5.4.0.201.new/external/api-snapshot/profiles/net_4_x/PEAPI.cs 2017-10-24 05:28:58.773995162 +0300
@@ -473,6 +473,7 @@ namespace PEAPI
}
public enum ImplAttr
{
+ AggressiveInlining = 256,
ForwardRef = 16,
IL = 0,
InternalCall = 4096,
diff -uprN mono-5.4.0.201/mono/mini/iltests.il mono-5.4.0.201.new/mono/mini/iltests.il
--- mono-5.4.0.201/mono/mini/iltests.il 2017-10-04 18:30:42.000000000 +0300
+++ mono-5.4.0.201.new/mono/mini/iltests.il 2017-10-24 05:30:44.849696785 +0300
@@ -2896,4 +2896,50 @@ END:
IL_0018: ldloc.0
ret
}
+
+ .method private hidebysig static void fail_inline() cil managed
+ {
+ // Code size 9 (0x9)
+ .maxstack 8
+ IL_0000: ldc.i4.s 16
+ IL_0002: conv.u
+ IL_0003: ldc.i4.1
+ IL_0004: mul.ovf.un
+ IL_0005: localloc
+ IL_0007: pop
+ IL_0008: ret
+ }
+
+ .method private hidebysig static int32
+ always_inline(int32 op) cil managed aggressiveinlining
+ {
+ // Code size 24 (0x18)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: brfalse.s IL_0009
+
+ IL_0003: ldarg.0
+ IL_0004: ldc.i4.2
+ IL_0005: beq.s IL_000b
+
+ IL_0007: br.s IL_000d
+
+ IL_0009: ldc.i4.0
+ IL_000a: ret
+
+ IL_000b: ldc.i4.3
+ IL_000c: ret
+
+ IL_000d: call void Tests::fail_inline()
+ IL_0012: newobj instance void [mscorlib]System.Exception::.ctor()
+ IL_0017: throw
+ }
+
+ .method public hidebysig static int32 test_3_regress_59608() cil managed
+ {
+ .maxstack 8
+ IL_0000: ldc.i4.2
+ IL_0001: call int32 Tests::always_inline(int32)
+ IL_000c: ret
+ }
}
diff -uprN mono-5.4.0.201/mono/mini/method-to-ir.c mono-5.4.0.201.new/mono/mini/method-to-ir.c
--- mono-5.4.0.201/mono/mini/method-to-ir.c 2017-10-04 18:30:42.000000000 +0300
+++ mono-5.4.0.201.new/mono/mini/method-to-ir.c 2017-10-24 05:30:44.853696774 +0300
@@ -6156,9 +6156,7 @@ inline_method (MonoCompile *cfg, MonoMet
prev_args = cfg->args;
prev_arg_types = cfg->arg_types;
prev_inlined_method = cfg->inlined_method;
- cfg->inlined_method = cmethod;
- cfg->ret_var_set = FALSE;
- cfg->inline_depth ++;
+ prev_ret_var_set = cfg->ret_var_set;
prev_real_offset = cfg->real_offset;
prev_cbb_hash = cfg->cbb_hash;
prev_cil_offset_to_bb = cfg->cil_offset_to_bb;
@@ -6168,9 +6166,12 @@ inline_method (MonoCompile *cfg, MonoMet
prev_cbb = cfg->cbb;
prev_current_method = cfg->current_method;
prev_generic_context = cfg->generic_context;
- prev_ret_var_set = cfg->ret_var_set;
prev_disable_inline = cfg->disable_inline;
+ cfg->inlined_method = cmethod;
+ cfg->ret_var_set = FALSE;
+ cfg->inline_depth ++;
+
if (ip && *ip == CEE_CALLVIRT && !(cmethod->flags & METHOD_ATTRIBUTE_STATIC))
virtual_ = TRUE;
++++++ mcs-compatibility-fix.patch ++++++
diff -uprN mono-5.4.0.201.old/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/EXPRExtensions.cs mono-5.4.0.201/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/EXPRExtensions.cs
--- mono-5.4.0.201.old/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/EXPRExtensions.cs 2017-10-04 18:31:23.000000000 +0300
+++ mono-5.4.0.201/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/EXPRExtensions.cs 2017-10-17 21:13:18.835702962 +0300
@@ -33,8 +33,9 @@ namespace Microsoft.CSharp.RuntimeBinder
Expr exprCur = expr;
while (exprCur != null)
{
- if (exprCur is ExprList list)
+ if (exprCur is ExprList)
{
+ var list = (ExprList)exprCur;
yield return list.OptionalElement;
exprCur = list.OptionalNextListNode;
}
@@ -61,12 +62,12 @@ namespace Microsoft.CSharp.RuntimeBinder
}
public static bool isNull(this Expr expr)
{
- return expr is ExprConstant constant && constant.IsOK && (expr.Type.fundType() == FUNDTYPE.FT_REF) && constant.Val.IsNullRef;
+ return expr is ExprConstant && ((ExprConstant)expr).IsOK && (expr.Type.fundType() == FUNDTYPE.FT_REF) && ((ExprConstant)expr).Val.IsNullRef;
}
public static bool IsZero(this Expr expr)
{
- return expr is ExprConstant constant && constant.IsOK && constant.IsZero;
+ return expr is ExprConstant && ((ExprConstant)expr).IsOK && ((ExprConstant)expr).IsZero;
}
private static Expr GetSeqVal(this Expr expr)
diff -uprN mono-5.4.0.201.old/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Nullable.cs mono-5.4.0.201/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Nullable.cs
--- mono-5.4.0.201.old/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Nullable.cs 2017-10-04 18:31:23.000000000 +0300
+++ mono-5.4.0.201/external/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Nullable.cs 2017-10-17 20:53:01.339702962 +0300
@@ -29,8 +29,9 @@ namespace Microsoft.CSharp.RuntimeBinder
{
Debug.Assert(expr != null);
- if (expr is ExprCall pCall && pCall.MemberGroup.OptionalObject == null)
+ if (expr is ExprCall && ((ExprCall)expr).MemberGroup.OptionalObject == null)
{
+ var pCall = (ExprCall)expr;
MethodSymbol meth = pCall.MethWithInst.Meth();
if (meth != null && meth.IsNullableConstructor())
{
@@ -45,7 +46,8 @@ namespace Microsoft.CSharp.RuntimeBinder
public static Expr StripNullableConstructor(Expr pExpr)
{
- while (IsNullableConstructor(pExpr, out ExprCall call))
+ ExprCall call;
+ while (IsNullableConstructor(pExpr, out call))
{
pExpr = call.OptionalArguments;
Debug.Assert(pExpr != null && !(pExpr is ExprList));
@@ -60,7 +62,8 @@ namespace Microsoft.CSharp.RuntimeBinder
Debug.Assert(exprSrc != null && exprSrc.Type.IsNullableType());
// For new T?(x), the answer is x.
- if (IsNullableConstructor(exprSrc, out ExprCall call))
+ ExprCall call;
+ if (IsNullableConstructor(exprSrc, out call))
{
var args = call.OptionalArguments;
Debug.Assert(args != null && !(args is ExprList));
diff -uprN mono-5.4.0.201.old/external/corefx/src/System.Collections/src/System/Collections/Generic/SortedSet.TreeSubSet.cs mono-5.4.0.201/external/corefx/src/System.Collections/src/System/Collections/Generic/SortedSet.TreeSubSet.cs
--- mono-5.4.0.201.old/external/corefx/src/System.Collections/src/System/Collections/Generic/SortedSet.TreeSubSet.cs 2017-10-04 18:31:23.000000000 +0300
+++ mono-5.4.0.201/external/corefx/src/System.Collections/src/System/Collections/Generic/SortedSet.TreeSubSet.cs 2017-10-17 17:12:55.639702962 +0300
@@ -352,7 +352,7 @@ namespace System.Collections.Generic
throw new PlatformNotSupportedException();
}
- protected override void OnDeserialization(Object sender) => throw new PlatformNotSupportedException();
+ protected override void OnDeserialization(Object sender) { throw new PlatformNotSupportedException(); }
}
}
}
diff -uprN mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Dynamic/Utils/TypeExtensions.cs mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Dynamic/Utils/TypeExtensions.cs
--- mono-5.4.0.201.old/external/corefx/src/System.Linq.Expressions/src/System/Dynamic/Utils/TypeExtensions.cs 2017-10-04 18:31:23.000000000 +0300
+++ mono-5.4.0.201/external/corefx/src/System.Linq.Expressions/src/System/Dynamic/Utils/TypeExtensions.cs 2017-10-17 19:28:46.291702962 +0300
@@ -65,7 +65,8 @@ namespace System.Dynamic.Utils
internal static ParameterInfo[] GetParametersCached(this MethodBase method)
{
CacheDict