diff --git a/mono-5.10.1.47.tar.bz2 b/mono-5.10.1.47.tar.bz2 new file mode 100644 index 0000000..4947d7d --- /dev/null +++ b/mono-5.10.1.47.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90c237b5288f95f6fdab4ace1e36ab64a6369e2c9fddd462d604fd788e2545da +size 210476762 diff --git a/mono-5.8.1.0.tar.bz2 b/mono-5.8.1.0.tar.bz2 deleted file mode 100644 index 5595b9f..0000000 --- a/mono-5.8.1.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a25ed4c8c4623ebae77dd307e7aca874f84f310d5cad1ff9454b3813a7f1cc39 -size 206741976 diff --git a/mono-core.changes b/mono-core.changes index 1da76b5..c9b615f 100644 --- a/mono-core.changes +++ b/mono-core.changes @@ -1,3 +1,97 @@ +------------------------------------------------------------------- +Wed Apr 18 00:00:00 UTC 2018 - fwdsbs.to.11df@xoxy.net + +- Update to version 5.10.1.47 (5.10.1 Stable) +- Patch updated: ucontext.patch + +------------------------------------------------------------------- +Fri Mar 30 01:00:00 UTC 2018 - fwdsbs.to.11df@xoxy.net + +- Add xbuild-use-roslyn-vbc.patch: + * Make xbuild to use roslyn-vbc on roslyn-enabled builds instead of deprecated vbnc (it is also broken on roslyn-enabled builds) + +------------------------------------------------------------------- +Fri Mar 30 00:00:00 UTC 2018 - fwdsbs.to.11df@xoxy.net + +- Update to version 5.10.0.140 (5.10.0 Stable) +- Remove patch: provides-facades.patch +- Add profiler-aot-parse_args-fix.patch: + * Fix OBS build failure with "free(): invalid pointer" libc error. +- New features and changes: + * Interpreter: the interpreter is now compiled in by default into Mono, and you can use it by running mono --interpreter + * Default Interface Methods: the runtime now supports Default Interface Methods, we now only miss the C# compiler support + * Mono SDKs: this is a new way of building Mono for some of the platforms that we support: Android, iOS and WebAssembly. + * WebAssembly port: this is the first release where the interpreter can reliably run most of the class libraries test suite. + * Dedicated Coverage profiler: the coverage profiler has been extracted from the log profiler, making it much more lightweight + * ARM Memory Barriers: explicitly encode memory barrier type on ARM64, instead of relying on undefined behaviour according to the ARMv8 ABI + * AOT Size Reduction via Code Deduplication: we now support deduplicating generics code across assemblies + * Class Libraries: the recently announced .NET 4.7.1 is now supported and available as a specific target via MSBuild configuration; the System.Data assembly was fully replaced with CoreFX implementation resolving many limitations and corner cases issue we had as well as implementing missing features and APIs; significant parts of System.Security assembly implementation were replaced with CoreFX implementation + * Roslyn compiler: roslyn compiler has been updated to version 2.6.0 which includes all C# 7.2 features + * The Mono C# compiler: MCS gained support for some more C# 7.x features +- Bugfixes: + * bxc#19503 - Process.Start on OS X fails silently for missing file + * bxc#20562 - Seeming valid IL produces invalid result + * bxc#40699 - Console.ReadXXX does not echo input after TermInfoDriver is initialized + * bxc#45893 - I18N: EncoderFallbackBuffer.Fallback gets next character instead of the current one + * bxc#50189 - SGEN XMM scanning: Linux/Intel (32 + 64) + * bxc#50190 - SGEN FPU scanning: Darwin/ARM64 + * bxc#52675 - HttpListener doesn’t work with SSL + * bxc#53296 - Latin1Encoding throws exception on Mono when it doesn’t on MS.NET + * bxc#56003 - URI returns wrong absolute path on OSX when File name is UTF-8 + * bxc#56194 - SIGSEGV on System.Runtime.CompilerServices.RuntimeHelpers.InitializeArray() + * bxc#56727 - Runtime crashes when disposing DeflateStream + * bxc#57892 - Static lib in the msi distrib doesn’t resolve all symbols + * bxc#57893 - mkbundle is not working on Windows + * bxc#57938 - Differences in behavior Type.Fullname in Mono and .NET Framework when Type is a generic type that is not a generic type definition but contains unresolved type parameters + * bxc#58400 - System.Uri broken with files + * bxc#58411 - System.Security.Cryptography.CryptographicException: Store root doesn’t exist + * bxc#59080 - Type information of underlying type for enums compiled by Mono.CSharp.dll seems to be incorrect + * bxc#59182 - Crash/SIGSEGV with interop callback with struct parameter from native to managed on Xamarin.Android on armv7 + * bxc#59184 - MethodInfo.Invoke fails for generic methods with too many/too large arguments + * bxc#59393 - NullReferenceException when MonthCalendar clicked out of min/max date + * bxc#59608 - Attribute MethodImplOptions.AggressiveInlining causes method to always return NULL + * bxc#59664 - Type.GetType(“”, true) throws ArgumentException on Mono but TypeLoadException on .NET + * bxc#59832 - [iOS]MT3001 error: Could not AOT the assembly error while building iOS/mobile samples + * bxc#59881 - DllImport calls a wrong function if its function number greater than 65535 + * bxc#59909 - WebInvokeAttributeTest.RejectTwoParametersWhenNotWrapped() fails on Android + * bxc#59916 - get_current_locale_name fails under the load with String conversion error: Illegal byte sequence encounted in the input + * bxc#59956 - [llvm][bitcode] [FAIL] UniqueIdTest.Ctor_Id (System.Runtime.Serialization tests) + * bxc#60028 - Timer doesn’t throw ODE after Dispose() + * bxc#60029 - AsyncLocal inconsistency with .NET + * bxc#60175 - AOT mis-compiles when coverage is used + * bxc#60224 - Coverage profiler uses type names which don’t exist + * bxc#60233 - Assertion in dynamic-image.c after 792b5367cd3a6ffa1a192c4d2d7ace3509cbb646 + * bxc#60238 - Mono assertion hit when using csharp repl + * bxc#60255 - Wrong exception in emulated opcodes + * bxc#60267 - Inconsistent symlink traversal results + * bxc#60288 - Large Array Initializer Causes TypeLoadException + * bxc#60298 - LayoutKind.Explicit, Size = 12 ignored with 64bit alignment + * bxc#60317 - Stuck WebRequest + * bxc#60422 - Native crash due to unhandled errno values when accessing files on networked filesystems + * bxc#60435 - The DataGridViewRow.CreateCellsInstance method is never invoked + * bxc#60539 - mini-codegen.c:1265, condition `reginfo [sreg].born_in > 0’ not met + * bxc#60545 - Multiple argument generic with contravariant interface as an argument causes MissingMethodException + * bxc#60621 - XmlDocument.Load() throws WebException when DTD url is not reachable + * bxc#60634 - Assertion failure ‘align > 0’ happening as of d15-5 + * bxc#60680 - C# 7 ref returns fail to compile + * bxc#60771 - Attempting to JIT compile method ‘System.Runtime.CompilerServices.Unsafe:Add (byte&,int)’ while running in aot-only mode + * bxc#60865 - * Assertion at mini-codegen.c:2264, condition `sp > 0’ not met + * bxc#61202 - Fatal error when adding aspect ratio constraint + * gh#mono/mono#6169 - Thread objects are being leaked + * gh#mono/mono#6187 - mkbundle Linux - program doesn’t run on system unless mono-core is installed + * gh#mono/mono#6192 - System.Reflection.Emit: PropertyBuilder with generic type doesn’t add generic parameter + * gh#mono/mono#6320 - [arm] unaligned access in ves_icall_System_ValueType_Equals + * gh#mono/mono#6339 - System.TypeLoadException is thrown when run .net standard library with Mono + * gh#mono/mono#6383 - System.Diagnostics.ProcessTest.Start1_FileName_NotFound failing + * gh#mono/mono#6401 - Invalid array cast is supported + * gh#mono/mono#6414 - sbyte comparison broken by optimization + * gh#mono/mono#6490 - Reenable weak-fields.exe test + * gh#mono/mono#6721 - Negate operation on uint.MaxValue gives wrong result on arm64 + * gh#mono/mono#6777 - Memory corruption in Mono 5.8.0.108. + * gh#mono/mono#6848 - netstandard facade dlls have different public key tokens + * gh#mono/mono#6848 - [XI]WatchOS apps fail to build with error “Undefined symbols for architecture armv7k” using XI with mono-2017-12 support + * gh#mono/mono#7086 - Hybrid AOT throws invalid cast exception on dictionaries indexed with enum + ------------------------------------------------------------------- Thu Mar 29 00:00:00 UTC 2018 - fwdsbs.to.11df@xoxy.net diff --git a/mono-core.spec b/mono-core.spec index e336b90..b6e0f33 100644 --- a/mono-core.spec +++ b/mono-core.spec @@ -38,10 +38,10 @@ %define roslyn no %endif -%define version_suffix 0 +%define version_suffix 47 Name: mono-core -Version: 5.8.1 +Version: 5.10.1 Release: 0 Summary: Cross-platform, Open Source, .NET development framework License: LGPL-2.1 and MIT and MS-PL @@ -54,8 +54,6 @@ Source2: gmcs ExcludeArch: ppc # PATCH-FIX-UPSTREAM use ucontext_t instead of struct ucontext 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-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). @@ -64,6 +62,10 @@ Patch15: xbuild-revert-to-mcs.patch Patch16: fix-dbg-headers.patch # PATCH-FIX-OPENSUSE fix build error: E: mono-core 64bit-portability-issue threads.c:1866 Patch18: fix-64bit-portability-issue.patch +# PATCH-FIX-OPENSUSE fix build failure caused by mono crash at some stage by modifying temporary buffer allocation logic at mono/profiler/aot.c::parse_args +Patch19: profiler-aot-parse_args-fix.patch +# PATCH-FIX-OPENSUSE make xbuild to use roslyn-vbc on roslyn-enabled builds, in order to fix vbnc's VBNC99999 failures on such builds +Patch20: xbuild-use-roslyn-vbc.patch BuildRequires: cmake BuildRequires: autoconf BuildRequires: automake @@ -80,6 +82,7 @@ BuildRequires: pkgconfig(libgdiplus) BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xinerama) BuildRequires: pkgconfig(zlib) +BuildRequires: python %ifnarch ia64 %arm s390 BuildRequires: pkgconfig(valgrind) %endif @@ -189,7 +192,7 @@ Requires: timezone # 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 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 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}/vbc.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}/vbc.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' @@ -204,13 +207,15 @@ technologies that have been submitted to the ECMA for standardization. %prep %setup -q -n mono-%{version}.%{version_suffix} %patch1 -p1 -%patch2 -p1 %patch14 -p1 %patch16 -p1 %if %roslyn == no %patch15 -p1 +%else +%patch20 -p1 %endif %patch18 -p1 +%patch19 -p1 %build # autogen.sh seems broken: it is not processing libgs subdirectory leaving old stuff there untouched. @@ -265,6 +270,7 @@ export PATH=/opt/novell/llvm-mono/bin:$PATH %endif --with-ikvm=yes \ --with-moonlight=no +#make VERBOSE=1 V=s make %install @@ -334,8 +340,10 @@ 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}%{_prefix}/lib/mono/4.5/vbc.* rm -v %{buildroot}%{_bindir}/csc rm -v %{buildroot}%{_bindir}/csi +rm -v %{buildroot}%{_bindir}/vbc rm -rfv %{msbuild_prefix} %endif @@ -521,8 +529,10 @@ rm %{buildroot}%{_bindir}/mono-sgen-gdb.py %if %roslyn == yes %{_bindir}/csc %{_bindir}/csi +%{_bindir}/vbc %{_prefix}/lib/mono/4.5/csc.* %{_prefix}/lib/mono/4.5/csi.* +%{_prefix}/lib/mono/4.5/vbc.* %{_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* @@ -1334,6 +1344,7 @@ Mono development tools. %dir %{_datadir}/mono-2.0/mono/cil %dir %{_datadir}/mono-2.0/mono/profiler %{_datadir}/mono-2.0/mono/cil/cil-opcodes.xml +%{_datadir}/mono-2.0/mono/profiler/mono-profiler-coverage.suppression %{_datadir}/mono-2.0/mono/profiler/mono-profiler-log.suppression %{_libdir}/libmono-profiler-*.* %{_libdir}/pkgconfig/cecil.pc @@ -1358,6 +1369,7 @@ Mono development tools. %{_mandir}/man1/mkbundle.1%ext_man %{_mandir}/man1/mono-api-info.1%ext_man %{_mandir}/man1/mono-cil-strip.1%ext_man +%{_mandir}/man1/mono-profilers.1%ext_man %{_mandir}/man1/mono-shlib-cop.1%ext_man %{_mandir}/man1/mono-symbolicate.1%ext_man %{_mandir}/man1/mono-xmltool.1%ext_man diff --git a/profiler-aot-parse_args-fix.patch b/profiler-aot-parse_args-fix.patch new file mode 100644 index 0000000..8654e00 --- /dev/null +++ b/profiler-aot-parse_args-fix.patch @@ -0,0 +1,21 @@ +diff -uprN mono-5.10.0.160.old/mono/profiler/aot.c mono-5.10.0.160/mono/profiler/aot.c +--- mono-5.10.0.160.old/mono/profiler/aot.c 2018-03-07 10:46:36.000000000 +0300 ++++ mono-5.10.0.160/mono/profiler/aot.c 2018-03-12 02:25:51.857765220 +0300 +@@ -108,7 +108,8 @@ parse_args (const char *desc) + const char *p; + gboolean in_quotes = FALSE; + char quote_char = '\0'; +- char *buffer = malloc (strlen (desc)); ++ char buffer[strlen (desc)]; ++ memset (buffer, 0, strlen (desc)); + int buffer_pos = 0; + + for (p = desc; *p; p++){ +@@ -154,7 +155,6 @@ parse_args (const char *desc) + parse_arg (buffer); + } + +- g_free (buffer); + } + + void diff --git a/provides-facades.patch b/provides-facades.patch deleted file mode 100644 index f069593..0000000 --- a/provides-facades.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/scripts/mono-find-provides.in b/scripts/mono-find-provides.in -index 5b2e206..5d6f34c 100644 ---- a/scripts/mono-find-provides.in -+++ b/scripts/mono-find-provides.in -@@ -16,7 +16,7 @@ monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)\$")) - - # Only include files with /gac/ in path - # (Allows packages to contain private assemblies that don't conflict with other packages) --monolist=($(printf "%s\n" "${monolist[@]}" | egrep "/gac/")) -+monolist=($(printf "%s\n" "${monolist[@]}" | egrep "/(gac|Facades|4\\.5)/")) - # Disabled... see ChangeLog - - # Set the prefix, unless it is overriden (used when building mono rpms) diff --git a/ucontext.patch b/ucontext.patch index e67b12b..50aec62 100644 --- a/ucontext.patch +++ b/ucontext.patch @@ -11,16 +11,3 @@ Index: mono-5.0.1.1/mono/utils/mono-context.h #define MONO_CONTEXT_SET_IP(ctx,ip) \ do { \ -Index: mono-5.0.1.1/mono/utils/mono-sigcontext.h -=================================================================== ---- mono-5.0.1.1.orig/mono/utils/mono-sigcontext.h -+++ mono-5.0.1.1/mono/utils/mono-sigcontext.h -@@ -285,7 +285,7 @@ typedef struct ucontext { - #endif - - #if defined(__linux__) -- typedef struct ucontext os_ucontext; -+ typedef ucontext_t os_ucontext; - - #ifdef __mono_ppc64__ - #define UCONTEXT_REG_Rn(ctx, n) (((os_ucontext*)(ctx))->uc_mcontext.gp_regs [(n)]) diff --git a/xbuild-use-roslyn-vbc.patch b/xbuild-use-roslyn-vbc.patch new file mode 100644 index 0000000..2cd0550 --- /dev/null +++ b/xbuild-use-roslyn-vbc.patch @@ -0,0 +1,48 @@ +diff -uprN mono-5.10.1.25.old/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/Vbc.cs mono-5.10.1.25/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/Vbc.cs +--- mono-5.10.1.25.old/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/Vbc.cs 2018-03-30 10:46:30.000000000 +0300 ++++ mono-5.10.1.25/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/Vbc.cs 2018-03-30 18:18:16.455961999 +0300 +@@ -326,7 +326,7 @@ namespace Microsoft.Build.Tasks { + [MonoTODO] + protected override string ToolName { + get { +- return MSBuildUtils.RunningOnWindows ? "vbnc.bat" : "vbnc"; ++ return MSBuildUtils.RunningOnWindows ? "vbc.bat" : "vbc"; + } + } + +diff -uprN mono-5.10.1.25.old/mcs/class/System/System/MonoToolsLocator.cs mono-5.10.1.25/mcs/class/System/System/MonoToolsLocator.cs +--- mono-5.10.1.25.old/mcs/class/System/System/MonoToolsLocator.cs 2018-03-30 10:46:33.000000000 +0300 ++++ mono-5.10.1.25/mcs/class/System/System/MonoToolsLocator.cs 2018-03-30 18:16:25.336430000 +0300 +@@ -55,7 +55,7 @@ namespace System { + //if (!File.Exists (CSharpCompiler)) + // throw new FileNotFoundException ("C# compiler not found at " + CSharpCompiler); + +- VBCompiler = Path.Combine (GacPath, "4.5\\vbnc.exe"); ++ VBCompiler = Path.Combine (GacPath, "4.5\\vbc.exe"); + AssemblyLinker = Path.Combine (GacPath, "4.5\\al.exe"); + + if (!File.Exists (AssemblyLinker)) { +@@ -73,9 +73,9 @@ namespace System { + if (!File.Exists (McsCSharpCompiler)) + McsCSharpCompiler = "mcs"; + +- VBCompiler = Path.GetFullPath (Path.Combine (mscorlibPath, "..", "..", "..", "..", "bin", "vbnc")); ++ VBCompiler = Path.GetFullPath (Path.Combine (mscorlibPath, "..", "..", "..", "..", "bin", "vbc")); + if (!File.Exists (VBCompiler)) +- VBCompiler = "vbnc"; ++ VBCompiler = "vbc"; + + AssemblyLinker = Path.GetFullPath (Path.Combine (mscorlibPath, "..", "..", "..", "..", "bin", "al")); + if (!File.Exists (AssemblyLinker)) +diff -uprN mono-5.10.1.25.old/mcs/tools/xbuild/data/Microsoft.VisualBasic.targets mono-5.10.1.25/mcs/tools/xbuild/data/Microsoft.VisualBasic.targets +--- mono-5.10.1.25.old/mcs/tools/xbuild/data/Microsoft.VisualBasic.targets 2018-03-30 10:46:35.000000000 +0300 ++++ mono-5.10.1.25/mcs/tools/xbuild/data/Microsoft.VisualBasic.targets 2018-03-30 18:19:02.595020000 +0300 +@@ -114,7 +114,7 @@ + + + +- vbnc.exe ++ vbc.exe + + +