[packages/mono] Updated to 6.14.1

arekm arekm at pld-linux.org
Sat Aug 15 12:51:05 CEST 2026


commit c1f855ea55bbc971cae306341ff99a8f3fc5ecc8
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Thu Aug 13 01:50:34 2026 +0200

    Updated to 6.14.1

 consistent-rpm-prov-req.patch        |  14 +--
 glibc.patch                          |  10 --
 mono-ARG_MAX.patch                   |  16 ---
 mono-CVE-2018-1002208.patch          |  21 ++++
 mono-arm64-sigcontext.patch          |  29 ++++++
 mono-console-no-utf8-bom.patch       |  12 ---
 mono-pc.patch                        |  70 +++++++------
 mono-sonames.patch                   |  23 +----
 mono-tests-assert-side-effects.patch |  51 +++++++++
 mono-tls-check.patch                 |  76 ++++++++++++++
 mono-x32.patch                       |  82 ---------------
 mono.spec                            | 194 +++++++++++++++++++++--------------
 12 files changed, 344 insertions(+), 254 deletions(-)
---
diff --git a/mono.spec b/mono.spec
index 1bcf9b9..8b4ff57 100644
--- a/mono.spec
+++ b/mono.spec
@@ -13,31 +13,30 @@
 Summary:	Common Language Infrastructure implementation
 Summary(pl.UTF-8):	Implementacja Common Language Infrastructure
 Name:		mono
-Version:	4.8.1.0
-Release:	7
+Version:	6.14.1
+Release:	1
 License:	LGPL v2 (VM), MIT/GPL v2 (C# compilers), MIT/MSPL/Apache v2.0 (classes), MIT/GPL v2 (tools)
 Group:		Development/Languages
-Source0:	http://download.mono-project.com/sources/mono/%{name}-%{version}.tar.bz2
-# Source0-md5:	715e7003221c1965eded65aa11c9a90e
+Source0:	https://dl.winehq.org/mono/sources/mono/%{name}-%{version}.tar.xz
+# Source0-md5:	8927a28fe883e81fec9a1abef9150c75
 Patch2:		%{name}-sonames.patch
-Patch4:		%{name}-console-no-utf8-bom.patch
 Patch5:		%{name}-pc.patch
-Patch6:		%{name}-ARG_MAX.patch
 Patch7:		%{name}-fix-null-requirement.patch
 Patch8:		%{name}-docs-build.patch
 Patch9:		%{name}-format-security.patch
-Patch10:	%{name}-x32.patch
 Patch11:	consistent-rpm-prov-req.patch
-Patch12:	glibc.patch
-URL:		http://www.mono-project.com/
+Patch13:	%{name}-tls-check.patch
+Patch14:	%{name}-tests-assert-side-effects.patch
+# https://gitlab.winehq.org/mono/mono/-/commit/2224c6915a98f870cc9a3a9f9e3698e7b20e3d27
+Patch15:	%{name}-arm64-sigcontext.patch
+Patch16:	%{name}-CVE-2018-1002208.patch
+URL:		https://gitlab.winehq.org/mono/mono
 %if %(test -r /dev/random; echo $?)
 BuildRequires:	ACCESSIBLE_/dev/random
 %endif
-BuildRequires:	autoconf >= 2.50
-BuildRequires:	automake >= 1:1.9
 BuildRequires:	bison
+BuildRequires:	cmake >= 2.8.10
 BuildRequires:	gettext-tools
-BuildRequires:	libtool
 %{!?with_bootstrap:BuildRequires:	mono-csharp}
 %{!?with_bootstrap:BuildRequires:	mono-devel >= 1.1.8.3-2}
 %{?with_llvm:BuildRequires:	mono-llvm >= 3.4}
@@ -61,7 +60,7 @@ BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 # debugger doesn't work with stripped mono
 %define         _noautostrip    .*/mono
 
-%define		skip_post_check_so	'.+(libmonosgen|libmono-profiler).+\.so.+'
+%define		skip_post_check_so	'.+(libmonosgen|libmono-profiler|libmono-native).*\.so.+'
 
 %if %{with bootstrap}
 %define	__mono_provides /bin/true
@@ -215,46 +214,31 @@ Pakiet ten zawiera dowiązania do programów o nazwach używanych w .NET
 oraz dotGNU.
 
 %prep
-%setup -q -n mono-4.8.1
+%setup -q
 %patch -P2 -p1
-%patch -P4 -p1
 %patch -P5 -p1
-%patch -P6 -p1
 %patch -P7 -p1
 %patch -P8 -p1
 %patch -P9 -p1
-#patch10 -p1
 %patch -P11 -p1
-%patch -P12 -p1
+%patch -P13 -p1
+%patch -P14 -p1
+%patch -P15 -p1
+%patch -P16 -p1
 
 # for jay
 cat >> mcs/build/config-default.make <<'EOF'
 CC = %{__cc}
-CFLAGS = %{rpmcflags}
+CFLAGS = %{rpmcppflags} %{rpmcflags}
 EOF
 
+%{__sed} -i -e '1s,#!/usr/bin/env bash,#!/bin/bash,' scripts/mono-test-install
+%{__sed} -i -e '1s,#!/usr/bin/env python3,#!%{__python3},' scripts/mono-heapviz
+
 # spurious-executable-perm on source files
 find -name '*.[ch]' | xargs chmod a-x
 
 %build
-%{__libtoolize}
-%{__aclocal} -I m4
-%{__autoheader}
-%{__autoconf}
-%{__automake}
-cd libgc
-%{__libtoolize}
-%{__aclocal}
-%{__autoconf}
-%{__automake}
-cd ../eglib
-%{__libtoolize}
-%{__aclocal}
-%{__autoconf}
-%{__autoheader}
-%{__automake}
-cd ..
-
 %{?with_llvm:PATH=%{_libdir}/mono-llvm/bin:$PATH}
 # -DUSE_COMPILER_TLS is passed to libgc by main configure, but our
 # CPPFLAGS override that CPPFLAGS
@@ -263,8 +247,6 @@ CPPFLAGS="%{rpmcppflags} -DUSE_LIBC_PRIVATE_SYMBOLS -DUSE_COMPILER_TLS -DBROKEN_
 %else
 CPPFLAGS="%{rpmcppflags} -DUSE_LIBC_PRIVATE_SYMBOLS -DUSE_COMPILER_TLS"
 %endif
-# note: don't enable moonlight here (yet) - it doesn't add anything to package
-# but disables some utils (it's meant for stripped mono build for moonlight)
 %configure \
 	%{!?with_static_libs:--disable-static} \
 	--enable-fast-install \
@@ -277,15 +259,13 @@ CPPFLAGS="%{rpmcppflags} -DUSE_LIBC_PRIVATE_SYMBOLS -DUSE_COMPILER_TLS"
 	--enable-big-arrays \
 	--with-large-heap \
 %endif
-	--with-gc=included \
-	--without-icu \
+	--with-libgc=included \
 	--without-monotouch \
-	--with-profile4 \
 	--with-sgen \
 	--with-tls=%{?with_tls:__thread}%{!?with_tls:pthread}
 
 # V=1 because --disable-silent-rules doesn't work.
-%{__make} -j1 \
+%{__make} \
 	V=1
 
 %install
@@ -297,10 +277,12 @@ install -d $RPM_BUILD_ROOT{%{_rpmlibdir},%{_datadir}/.mono/keypairs}
 
 strip --strip-debug $RPM_BUILD_ROOT%{_bindir}/mono
 
-%{__make} -C mcs/jay -j 1 install \
-	DESTDIR=$RPM_BUILD_ROOT
-# leave only skeleton
-%{__rm} $RPM_BUILD_ROOT%{_datadir}/jay/[ANR]*
+# mcs/jay sets NO_INSTALL, so install it by hand; only the skeletons are needed
+# at runtime, the rest of its datafiles ship as %%doc
+install -d $RPM_BUILD_ROOT%{_datadir}/jay
+install -p mcs/jay/jay $RPM_BUILD_ROOT%{_bindir}
+cp -p mcs/jay/skeleton mcs/jay/skeleton.cs $RPM_BUILD_ROOT%{_datadir}/jay
+cp -p mcs/jay/jay.1 $RPM_BUILD_ROOT%{_mandir}/man1
 
 # this way we can run rpmbuild -bi several times, and directories
 # have more meaningful name.
@@ -311,14 +293,12 @@ install -d pld-doc/notes
 cp -a docs/* pld-doc/notes
 %{__rm} pld-doc/*/Makefile*
 
-%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/libgc-mono
-
 %{__mv} $RPM_BUILD_ROOT%{_bindir}/mono-find-* $RPM_BUILD_ROOT%{_rpmlibdir}
 
 # loadable modules
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/lib{MonoPosixHelper,MonoSupportW,ikvm-native}.la
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/lib{MonoPosixHelper,MonoSupportW,ikvm-native,mono-native}.la
 %if %{with static_libs}
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/lib{MonoPosixHelper,MonoSupportW,ikvm-native}.a
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/lib{MonoPosixHelper,MonoSupportW,ikvm-native,mono-native}.a
 %endif
 
 %find_lang mcs
@@ -350,6 +330,7 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_bindir}/mkbundle
 %attr(755,root,root) %{_bindir}/mono-boehm
 %attr(755,root,root) %{_bindir}/mono-configuration-crypto
+%attr(755,root,root) %{_bindir}/mono-hang-watchdog
 %attr(755,root,root) %{_bindir}/mono-service
 %attr(755,root,root) %{_bindir}/mono-service2
 %attr(755,root,root) %{_bindir}/mono-sgen
@@ -373,13 +354,18 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %ghost %{_libdir}/libmonosgen-2.0.so.1
 %attr(755,root,root) %{_libdir}/libmono-profiler-aot.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libmono-profiler-aot.so.0
-%attr(755,root,root) %{_libdir}/libmono-profiler-iomap.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libmono-profiler-iomap.so.0
+%attr(755,root,root) %{_libdir}/libmono-profiler-coverage.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmono-profiler-coverage.so.0
 %attr(755,root,root) %{_libdir}/libmono-profiler-log.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libmono-profiler-log.so.0
+%attr(755,root,root) %{_libdir}/libmono-native.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmono-native.so.0
 %attr(755,root,root) %{_libdir}/libMonoPosixHelper.so
 %attr(755,root,root) %{_libdir}/libMonoSupportW.so
 %attr(755,root,root) %{_libdir}/libikvm-native.so
+# dllmapped by name, so the unversioned soname is needed at runtime
+%attr(755,root,root) %{_libdir}/libmono-btls-shared.so
+%attr(755,root,root) %{_libdir}/libmono-native.so
 %dir %{_prefix}/lib/mono
 %dir %{_prefix}/lib/mono/2.0-api
 %{_prefix}/lib/mono/2.0-api/*.dll
@@ -419,7 +405,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_prefix}/lib/mono/4.5/sqlmetal.exe.config
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/svcutil.exe
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/xsd.exe
-%attr(755,root,root) %{_prefix}/lib/mono/4.5/mscorlib.dll.so
+%attr(755,root,root) %{_prefix}/lib/mono/4.5/*.dll.so
 %{_prefix}/lib/mono/4.5/*.dll
 %dir %{_prefix}/lib/mono/4.5/Facades
 %{_prefix}/lib/mono/4.5/Facades/*.dll
@@ -427,13 +413,49 @@ rm -rf $RPM_BUILD_ROOT
 %{_prefix}/lib/mono/4.5-api/*.dll
 %dir %{_prefix}/lib/mono/4.5-api/Facades
 %{_prefix}/lib/mono/4.5-api/Facades/*.dll
+%dir %{_prefix}/lib/mono/4.5.1-api
+%{_prefix}/lib/mono/4.5.1-api/*.dll
+%dir %{_prefix}/lib/mono/4.5.1-api/Facades
+%{_prefix}/lib/mono/4.5.1-api/Facades/*.dll
+%dir %{_prefix}/lib/mono/4.5.2-api
+%{_prefix}/lib/mono/4.5.2-api/*.dll
+%dir %{_prefix}/lib/mono/4.5.2-api/Facades
+%{_prefix}/lib/mono/4.5.2-api/Facades/*.dll
+%dir %{_prefix}/lib/mono/4.6-api
+%{_prefix}/lib/mono/4.6-api/*.dll
+%dir %{_prefix}/lib/mono/4.6-api/Facades
+%{_prefix}/lib/mono/4.6-api/Facades/*.dll
+%dir %{_prefix}/lib/mono/4.6.1-api
+%{_prefix}/lib/mono/4.6.1-api/*.dll
+%dir %{_prefix}/lib/mono/4.6.1-api/Facades
+%{_prefix}/lib/mono/4.6.1-api/Facades/*.dll
+%dir %{_prefix}/lib/mono/4.6.2-api
+%{_prefix}/lib/mono/4.6.2-api/*.dll
+%dir %{_prefix}/lib/mono/4.6.2-api/Facades
+%{_prefix}/lib/mono/4.6.2-api/Facades/*.dll
+%dir %{_prefix}/lib/mono/4.7-api
+%{_prefix}/lib/mono/4.7-api/*.dll
+%dir %{_prefix}/lib/mono/4.7-api/Facades
+%{_prefix}/lib/mono/4.7-api/Facades/*.dll
+%dir %{_prefix}/lib/mono/4.7.1-api
+%{_prefix}/lib/mono/4.7.1-api/*.dll
+%dir %{_prefix}/lib/mono/4.7.1-api/Facades
+%{_prefix}/lib/mono/4.7.1-api/Facades/*.dll
+%dir %{_prefix}/lib/mono/4.7.2-api
+%{_prefix}/lib/mono/4.7.2-api/*.dll
+%dir %{_prefix}/lib/mono/4.7.2-api/Facades
+%{_prefix}/lib/mono/4.7.2-api/Facades/*.dll
+%dir %{_prefix}/lib/mono/4.8-api
+%{_prefix}/lib/mono/4.8-api/*.dll
+%dir %{_prefix}/lib/mono/4.8-api/Facades
+%{_prefix}/lib/mono/4.8-api/Facades/*.dll
 %dir %{_prefix}/lib/mono/mono-configuration-crypto
 %dir %{_prefix}/lib/mono/mono-configuration-crypto/4.5
 %{_prefix}/lib/mono/mono-configuration-crypto/4.5/Mono.Configuration.Crypto.dll
 %attr(755,root,root) %{_prefix}/lib/mono/mono-configuration-crypto/4.5/mono-configuration-crypto.exe
 %exclude %{_prefix}/lib/mono/gac/monodoc
 %{_prefix}/lib/mono/gac
-%exclude %{_prefix}/lib/mono/gac/*/*/*.mdb
+%exclude %{_prefix}/lib/mono/gac/*/*/*.pdb
 %{_prefix}/lib/mono-source-libs
 %dir %{_datadir}/.mono
 %dir %{_datadir}/.mono/keypairs
@@ -449,6 +471,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/mkbundle.1*
 %{_mandir}/man1/mono.1*
 %{_mandir}/man1/mono-configuration-crypto.1*
+%{_mandir}/man1/mono-profilers.1*
 %{_mandir}/man1/mono-service.1*
 %{_mandir}/man1/mozroots.1*
 %{_mandir}/man1/mprof-report.1*
@@ -503,12 +526,14 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/al
 %attr(755,root,root) %{_bindir}/al2
+%attr(755,root,root) %{_bindir}/aprofutil
 %attr(755,root,root) %{_bindir}/cccheck
 %attr(755,root,root) %{_bindir}/ccrewrite
 %attr(755,root,root) %{_bindir}/disco
 %attr(755,root,root) %{_bindir}/dtd2xsd
 %attr(755,root,root) %{_bindir}/genxs
 %attr(755,root,root) %{_bindir}/ikdasm
+%attr(755,root,root) %{_bindir}/illinkanalyzer
 %attr(755,root,root) %{_bindir}/macpack
 %attr(755,root,root) %{_bindir}/mono-api-html
 %attr(755,root,root) %{_bindir}/mono-api-info
@@ -517,7 +542,6 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_bindir}/mono-package-runtime
 %attr(755,root,root) %{_bindir}/mono-symbolicate
 %attr(755,root,root) %{_bindir}/monodis
-%attr(755,root,root) %{_bindir}/monograph
 %attr(755,root,root) %{_bindir}/monolinker
 %attr(755,root,root) %{_bindir}/monop
 %attr(755,root,root) %{_bindir}/monop2
@@ -525,13 +549,9 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_bindir}/mono-gdb.py
 %attr(755,root,root) %{_bindir}/mono-sgen-gdb.py
 %attr(755,root,root) %{_bindir}/lc
-%attr(755,root,root) %{_bindir}/nunit-console
-%attr(755,root,root) %{_bindir}/nunit-console2
-%attr(755,root,root) %{_bindir}/nunit-console4
 %attr(755,root,root) %{_bindir}/pedump
 %attr(755,root,root) %{_bindir}/peverify
 %attr(755,root,root) %{_bindir}/permview
-%attr(755,root,root) %{_bindir}/prj2make
 %attr(755,root,root) %{_bindir}/sgen-grep-binprot
 %attr(755,root,root) %{_bindir}/soapsuds
 %attr(755,root,root) %{_bindir}/sqlsharp
@@ -543,18 +563,18 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_libdir}/libmonoboehm-2.0.so
 %attr(755,root,root) %{_libdir}/libmonosgen-2.0.so
 %attr(755,root,root) %{_libdir}/libmono-profiler-aot.so
-%attr(755,root,root) %{_libdir}/libmono-profiler-iomap.so
+%attr(755,root,root) %{_libdir}/libmono-profiler-coverage.so
 %attr(755,root,root) %{_libdir}/libmono-profiler-log.so
 %{_libdir}/libmono-profiler-aot-static.a
-%{_libdir}/libmono-profiler-iomap-static.a
+%{_libdir}/libmono-profiler-coverage-static.a
 %{_libdir}/libmono-profiler-log-static.a
 %{_libdir}/libmono-2.0.la
 %{_libdir}/libmonoboehm-2.0.la
 %{_libdir}/libmonosgen-2.0.la
 %{_libdir}/libmono-profiler-aot.la
 %{_libdir}/libmono-profiler-aot-static.la
-%{_libdir}/libmono-profiler-iomap.la
-%{_libdir}/libmono-profiler-iomap-static.la
+%{_libdir}/libmono-profiler-coverage.la
+%{_libdir}/libmono-profiler-coverage-static.la
 %{_libdir}/libmono-profiler-log.la
 %{_libdir}/libmono-profiler-log-static.la
 %{_prefix}/lib/mono/4.5/MSBuild
@@ -564,6 +584,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_prefix}/lib/mono/4.5/Microsoft.Common.tasks
 %{_prefix}/lib/mono/4.5/Microsoft.VisualBasic.targets
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/al.exe
+%attr(755,root,root) %{_prefix}/lib/mono/4.5/aprofutil.exe
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/cccheck.exe
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/ccrewrite.exe
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/culevel.exe
@@ -573,11 +594,12 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/ictool.exe
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/ikdasm.exe
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/installvst.exe
+%attr(755,root,root) %{_prefix}/lib/mono/4.5/illinkanalyzer.exe
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/lc.exe
-%attr(755,root,root) %{_prefix}/lib/mono/4.5/linkeranalyzer.exe
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/macpack.exe
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/mcs.exe
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/mcs.exe.so
+%attr(755,root,root) %{_prefix}/lib/mono/4.5/mono-api-diff.exe
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/mono-api-html.exe
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/mono-api-info.exe
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/mono-cil-strip.exe
@@ -587,8 +609,6 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/mono-xmltool.exe
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/monolinker.exe
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/monop.exe
-%attr(755,root,root) %{_prefix}/lib/mono/4.5/nunit-console.exe
-%{_prefix}/lib/mono/4.5/nunit-console.exe.config
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/permview.exe
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/resgen.exe
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/soapsuds.exe
@@ -597,6 +617,9 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/xbuild.exe
 %{_prefix}/lib/mono/4.5/xbuild.exe.config
 %{_prefix}/lib/mono/4.5/xbuild.rsp
+%{_prefix}/lib/mono/msbuild
+%exclude %{_prefix}/lib/mono/xbuild/*/bin/*.pdb
+%exclude %{_prefix}/lib/mono/xbuild/Microsoft/NuGet/*.pdb
 %{_prefix}/lib/mono/xbuild
 %{_prefix}/lib/mono/xbuild-frameworks
 # mono support for lldb
@@ -614,7 +637,6 @@ rm -rf $RPM_BUILD_ROOT
 %{_pkgconfigdir}/mono.pc
 %{_pkgconfigdir}/mono-2.pc
 %{_pkgconfigdir}/mono-cairo.pc
-%{_pkgconfigdir}/mono-nunit.pc
 %{_pkgconfigdir}/mono-lineeditor.pc
 %{_pkgconfigdir}/mono-options.pc
 %{_pkgconfigdir}/monosgen-2.pc
@@ -628,14 +650,17 @@ rm -rf $RPM_BUILD_ROOT
 %{_pkgconfigdir}/xbuild12.pc
 %{_includedir}/%{name}-2.0
 %{_mandir}/man1/al.1*
+%{_mandir}/man1/aprofutil.1*
 %{_mandir}/man1/cccheck.1*
 %{_mandir}/man1/ccrewrite.1*
 %{_mandir}/man1/cilc.1*
 %{_mandir}/man1/disco.1*
 %{_mandir}/man1/dtd2xsd.1*
 %{_mandir}/man1/genxs.1*
+%{_mandir}/man1/illinkanalyzer.1*
 %{_mandir}/man1/lc.1*
 %{_mandir}/man1/macpack.1*
+%{_mandir}/man1/mdb2ppdb.1*
 %{_mandir}/man1/mono-api-info.1*
 %{_mandir}/man1/mono-cil-strip.1*
 %{_mandir}/man1/mono-shlib-cop.1*
@@ -645,7 +670,6 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/monolinker.1*
 %{_mandir}/man1/monop.1*
 %{_mandir}/man1/permview.1*
-%{_mandir}/man1/prj2make.1*
 %{_mandir}/man1/resgen.1*
 %{_mandir}/man1/soapsuds.1*
 %{_mandir}/man1/sqlsharp.1*
@@ -655,17 +679,35 @@ rm -rf $RPM_BUILD_ROOT
 
 %files debug
 %defattr(644,root,root,755)
-%{_prefix}/lib/mono/4.5/*.mdb
-%{_prefix}/lib/mono/4.5/Facades/*.mdb
-%{_prefix}/lib/mono/gac/*/*/*.mdb
-%{_prefix}/lib/mono/mono-configuration-crypto/4.5/*.mdb
+%{_prefix}/lib/mono/4.5/*.pdb
+%{_prefix}/lib/mono/4.5/Facades/*.pdb
+%{_prefix}/lib/mono/gac/*/*/*.pdb
+%{_prefix}/lib/mono/mono-configuration-crypto/4.5/*.pdb
+%{_prefix}/lib/mono/xbuild/12.0/bin/xbuild.pdb
+%{_prefix}/lib/mono/xbuild/14.0/bin/xbuild.pdb
+%{_prefix}/lib/mono/xbuild/Microsoft/NuGet/Microsoft.NuGet.Build.Tasks.pdb
 
 %files csharp -f mcs.lang
 %defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/csc
 %attr(755,root,root) %{_bindir}/csharp
+%attr(755,root,root) %{_bindir}/csi
 %attr(755,root,root) %{_bindir}/dmcs
 %attr(755,root,root) %{_bindir}/mcs
+%attr(755,root,root) %{_bindir}/vbc
+%attr(755,root,root) %{_prefix}/lib/mono/4.5/VBCSCompiler.exe
+%{_prefix}/lib/mono/4.5/VBCSCompiler.exe.config
+%attr(755,root,root) %{_prefix}/lib/mono/4.5/csc.exe
+%{_prefix}/lib/mono/4.5/csc.exe.config
+%attr(755,root,root) %{_prefix}/lib/mono/4.5/csc.exe.so
+%{_prefix}/lib/mono/4.5/csc.rsp
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/csharp.exe
+%attr(755,root,root) %{_prefix}/lib/mono/4.5/csi.exe
+%{_prefix}/lib/mono/4.5/csi.exe.config
+%{_prefix}/lib/mono/4.5/csi.rsp
+%attr(755,root,root) %{_prefix}/lib/mono/4.5/vbc.exe
+%{_prefix}/lib/mono/4.5/vbc.exe.config
+%{_prefix}/lib/mono/4.5/vbc.rsp
 %{_mandir}/man1/mcs.1*
 %{_mandir}/man1/csharp.1*
 
@@ -687,12 +729,12 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/mdoc.exe
 %attr(755,root,root) %{_prefix}/lib/mono/4.5/mod.exe
 %attr(755,root,root) %{_prefix}/lib/mono/monodoc/monodoc.dll
-%exclude %{_prefix}/lib/mono/gac/monodoc/*/*.mdb
+%exclude %{_prefix}/lib/mono/gac/monodoc/*/*.pdb
 %{_prefix}/lib/mono/gac/monodoc
 %dir %{_prefix}/lib/mono/monodoc
 %dir %{_prefix}/lib/monodoc
-%{_prefix}/lib/monodoc/sources
 %{_prefix}/lib/monodoc/monodoc.xml
+%{_prefix}/lib/monodoc/sources
 %{_pkgconfigdir}/monodoc.pc
 %{_mandir}/man1/mdassembler.1*
 %{_mandir}/man1/mdoc*.1*
@@ -708,6 +750,6 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libmonoboehm-2.0.a
 %{_libdir}/libmonosgen-2.0.a
 %{_libdir}/libmono-profiler-aot.a
-%{_libdir}/libmono-profiler-iomap.a
+%{_libdir}/libmono-profiler-coverage.a
 %{_libdir}/libmono-profiler-log.a
 %endif
diff --git a/consistent-rpm-prov-req.patch b/consistent-rpm-prov-req.patch
index 06342b4..3c45fd2 100644
--- a/consistent-rpm-prov-req.patch
+++ b/consistent-rpm-prov-req.patch
@@ -1,11 +1,11 @@
---- mono-4.8.1/scripts/mono-find-provides.in~	2017-04-12 12:51:22.000000000 +0200
-+++ mono-4.8.1/scripts/mono-find-provides.in	2018-10-21 19:25:53.753471755 +0200
+--- mono-6.14.1/scripts/mono-find-provides.in	2025-01-13 20:10:41.000000000 +0100
++++ mono-6.14.1/scripts/mono-find-provides.in	2026-08-09 13:11:10.368212546 +0200
 @@ -16,7 +16,7 @@
  
- # Only include files with /gac/ in path
+ # Only include files with /gac/, /Facades/ or /4.5/ 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/"))
+-monolist=($(printf "%s\n" "${monolist[@]}" | egrep "/(gac|Facades|4\\.5)/"))
++#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)
@@ -18,8 +18,8 @@
  	echo "monodis missing or unusable, exiting..." 1>&2
  	exit 1
  fi
---- mono-4.8.1/scripts/mono-find-requires.in~	2018-10-21 22:38:34.000000000 +0200
-+++ mono-4.8.1/scripts/mono-find-requires.in	2018-10-21 22:43:46.468368810 +0200
+--- mono-6.14.1/scripts/mono-find-requires.in	2025-01-13 20:10:41.000000000 +0100
++++ mono-6.14.1/scripts/mono-find-requires.in	2026-08-09 13:11:10.368693162 +0200
 @@ -30,7 +30,7 @@
  bindir=$prefix/bin
  
diff --git a/glibc.patch b/glibc.patch
deleted file mode 100644
index fe19cef..0000000
--- a/glibc.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- mono-4.8.1/mono/io-layer/processes.c~	2017-04-12 12:51:21.000000000 +0200
-+++ mono-4.8.1/mono/io-layer/processes.c	2018-10-21 17:53:30.117068850 +0200
-@@ -29,6 +29,7 @@
- #include <sys/param.h>
- #endif
- #include <ctype.h>
-+#include <sys/sysmacros.h>
- 
- #ifdef HAVE_SYS_WAIT_H
- #include <sys/wait.h>
diff --git a/mono-ARG_MAX.patch b/mono-ARG_MAX.patch
deleted file mode 100644
index a613592..0000000
--- a/mono-ARG_MAX.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- mono-1.9.1/mono/io-layer/wapi_glob.c.orig	2007-11-08 23:07:22.000000000 +0100
-+++ mono-1.9.1/mono/io-layer/wapi_glob.c	2008-06-18 21:55:40.512789881 +0200
-@@ -54,6 +54,13 @@
- 
- #include "wapi_glob.h"
- 
-+#if defined(_SC_ARG_MAX)
-+# if defined(ARG_MAX)
-+#    undef ARG_MAX
-+# endif
-+# define ARG_MAX sysconf (_SC_ARG_MAX)
-+#endif
-+
- #define	EOS		'\0'
- #define	NOT		'!'
- #define	QUESTION	'?'
diff --git a/mono-CVE-2018-1002208.patch b/mono-CVE-2018-1002208.patch
new file mode 100644
index 0000000..bf2a4a3
--- /dev/null
+++ b/mono-CVE-2018-1002208.patch
@@ -0,0 +1,21 @@
+--- mono-6.14.1/mcs/class/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib/Zip/FastZip.cs
++++ mono-6.14.1/mcs/class/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib/Zip/FastZip.cs
+@@ -375,7 +375,17 @@
+ 				
+ 				targetName = Path.Combine(targetDirectory, entryFileName);
+ 				dirName = Path.GetDirectoryName(Path.GetFullPath(targetName));
+-	
++
++				// Zip-Slip: an entry must not resolve outside targetDirectory;
++				// normalise both sides, targetDirectory may be relative.
++				string targetRoot = Path.GetFullPath(targetDirectory);
++				if (!targetRoot.EndsWith(Path.DirectorySeparatorChar.ToString(), StringComparison.Ordinal)) {
++					targetRoot += Path.DirectorySeparatorChar;
++				}
++				if (!Path.GetFullPath(targetName).StartsWith(targetRoot, StringComparison.Ordinal)) {
++					throw new ZipException("Parent traversal in paths is not allowed");
++				}
++
+ 				doExtraction = doExtraction && (entryFileName.Length > 0);
+ 			}
+ 			
diff --git a/mono-arm64-sigcontext.patch b/mono-arm64-sigcontext.patch
new file mode 100644
index 0000000..af42faf
--- /dev/null
+++ b/mono-arm64-sigcontext.patch
@@ -0,0 +1,29 @@
+From 2224c6915a98f870cc9a3a9f9e3698e7b20e3d27 Mon Sep 17 00:00:00 2001
+From: Esme Povirk <esme at codeweavers.com>
+Date: Sat, 12 Apr 2025 20:31:54 +0000
+Subject: [PATCH] arm64: Fix a pointer-to-int cast size mismatch.
+
+---
+ mono/utils/mono-sigcontext.h | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/mono/utils/mono-sigcontext.h b/mono/utils/mono-sigcontext.h
+index 2153c1cad57..6426f44b7c7 100644
+--- a/mono/utils/mono-sigcontext.h
++++ b/mono/utils/mono-sigcontext.h
+@@ -492,6 +492,12 @@ typedef struct ucontext {
+ 	#define UCONTEXT_REG_SP(ctx) (((ucontext_t*)(ctx))->uc_mcontext.sp)
+ 	#define UCONTEXT_REG_R0(ctx) (((ucontext_t*)(ctx))->uc_mcontext.regs [ARMREG_R0])
+ 	#define UCONTEXT_GREGS(ctx) (&(((ucontext_t*)(ctx))->uc_mcontext.regs))
++	#define UCONTEXT_REG_SET_PC(ctx, val) do { \
++		UCONTEXT_REG_PC (ctx) = (gsize)(val); \
++		 } while (0)
++	#define UCONTEXT_REG_SET_SP(ctx, val) do { \
++		UCONTEXT_REG_SP (ctx) = (val); \
++		 } while (0)
+ #endif
+ 
+ #ifndef UCONTEXT_REG_SET_PC
+-- 
+GitLab
+
diff --git a/mono-console-no-utf8-bom.patch b/mono-console-no-utf8-bom.patch
deleted file mode 100644
index 47b584d..0000000
--- a/mono-console-no-utf8-bom.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- trunk/mcs/class/corlib/System/Console.cs.old	2006-08-29 18:21:12.473936000 +0200
-+++ trunk/mcs/class/corlib/System/Console.cs	2006-08-29 18:23:46.607568750 +0200
-@@ -97,8 +97,7 @@
- 				int code_page = 0;
- 				Encoding.InternalCodePage (ref code_page);
- 
--				if (code_page != -1 && ((code_page & 0x0fffffff) == 3 // UTF8Encoding.UTF8_CODE_PAGE
--					|| ((code_page & 0x10000000) != 0)))
-+				if (code_page == 3 /* UTF8Encoding.UTF8_CODE_PAGE */ || ((code_page & 0x10000000) != 0))
- 					inputEncoding = outputEncoding = EncodingHelper.UTF8Unmarked;
- 				else
- 					inputEncoding = outputEncoding = EncodingHelper.Default;
diff --git a/mono-pc.patch b/mono-pc.patch
index fcdc826..303bd4a 100644
--- a/mono-pc.patch
+++ b/mono-pc.patch
@@ -1,6 +1,5 @@
-diff -urN mono-2.6.1/data/mint.pc.in mono-2.6.1.new//data/mint.pc.in
---- mono-2.6.1/data/mint.pc.in	2009-09-25 16:58:13.000000000 +0200
-+++ mono-2.6.1.new//data/mint.pc.in	2010-03-10 18:04:52.687310723 +0100
+--- mono-6.14.1/data/mint.pc.in	2025-01-13 20:10:37.000000000 +0100
++++ mono-6.14.1/data/mint.pc.in	2026-08-09 13:10:58.477395939 +0200
 @@ -1,5 +1,5 @@
 -prefix=${pcfiledir}/../..
 -exec_prefix=${pcfiledir}/../..
@@ -9,9 +8,28 @@ diff -urN mono-2.6.1/data/mint.pc.in mono-2.6.1.new//data/mint.pc.in
  libdir=${prefix}/lib
  includedir=${prefix}/include/mono- at API_VER@
  
-diff -urN mono-2.6.1/data/mono-cairo.pc.in mono-2.6.1.new//data/mono-cairo.pc.in
---- mono-2.6.1/data/mono-cairo.pc.in	2009-09-25 16:58:13.000000000 +0200
-+++ mono-2.6.1.new//data/mono-cairo.pc.in	2010-03-10 18:04:34.723977960 +0100
+--- mono-6.14.1/data/mono.pc.in	2025-01-13 20:10:37.000000000 +0100
++++ mono-6.14.1/data/mono.pc.in	2026-08-09 13:10:58.480823269 +0200
+@@ -1,5 +1,5 @@
+-prefix=${pcfiledir}/../..
+-exec_prefix=${pcfiledir}/../..
++prefix=@prefix@
++exec_prefix=@exec_prefix@
+ libdir=${prefix}/@reloc_libdir@
+ includedir=${prefix}/include/mono- at API_VER@
+ sysconfdir=@sysconfdir@
+--- mono-6.14.1/data/mono-2.pc.in	2025-01-13 20:10:37.000000000 +0100
++++ mono-6.14.1/data/mono-2.pc.in	2026-08-09 13:10:58.483582100 +0200
+@@ -1,5 +1,5 @@
+-prefix=${pcfiledir}/../..
+-exec_prefix=${pcfiledir}/../..
++prefix=@prefix@
++exec_prefix=@exec_prefix@
+ libdir=${prefix}/@reloc_libdir@
+ includedir=${prefix}/include/mono- at API_VER@
+ sysconfdir=@sysconfdir@
+--- mono-6.14.1/data/mono-cairo.pc.in	2025-01-13 20:10:37.000000000 +0100
++++ mono-6.14.1/data/mono-cairo.pc.in	2026-08-09 13:10:58.486361069 +0200
 @@ -1,5 +1,5 @@
 -prefix=${pcfiledir}/../..
 -exec_prefix=${pcfiledir}/../..
@@ -20,41 +38,29 @@ diff -urN mono-2.6.1/data/mono-cairo.pc.in mono-2.6.1.new//data/mono-cairo.pc.in
  libdir=${prefix}/@reloc_libdir@
  includedir=${prefix}/include
  
-diff -urN mono-2.6.1/data/mono-lineeditor.pc.in mono-2.6.1.new//data/mono-lineeditor.pc.in
---- mono-2.6.1/data/mono-lineeditor.pc.in	2009-09-25 16:58:13.000000000 +0200
-+++ mono-2.6.1.new//data/mono-lineeditor.pc.in	2010-03-10 18:04:19.573989125 +0100
-@@ -1,4 +1,4 @@
+--- mono-6.14.1/data/monosgen-2.pc.in	2025-01-13 20:10:37.000000000 +0100
++++ mono-6.14.1/data/monosgen-2.pc.in	2026-08-09 13:10:58.488947004 +0200
+@@ -1,5 +1,5 @@
 -prefix=${pcfiledir}/../..
+-exec_prefix=${pcfiledir}/../..
 +prefix=@prefix@
- assemblies_dir=${prefix}/lib/mono-source-libs
- Sources=${assemblies_dir}/getline.cs
- 
-diff -urN mono-2.6.1/data/mono-nunit.pc.in mono-2.6.1.new//data/mono-nunit.pc.in
---- mono-2.6.1/data/mono-nunit.pc.in	2009-09-25 16:58:13.000000000 +0200
-+++ mono-2.6.1.new//data/mono-nunit.pc.in	2010-03-10 18:04:06.317322378 +0100
++exec_prefix=@exec_prefix@
+ libdir=${prefix}/@reloc_libdir@
+ includedir=${prefix}/include/mono- at API_VER@
+ sysconfdir=@sysconfdir@
+--- mono-6.14.1/data/mono-lineeditor.pc.in	2025-01-13 20:10:37.000000000 +0100
++++ mono-6.14.1/data/mono-lineeditor.pc.in	2026-08-09 13:10:58.491477601 +0200
 @@ -1,4 +1,4 @@
 -prefix=${pcfiledir}/../..
 +prefix=@prefix@
- exec_prefix=${prefix}
- libdir=${exec_prefix}/lib
+ assemblies_dir=${prefix}/lib/mono-source-libs
+ Sources=${assemblies_dir}/getline.cs
  
-diff -urN mono-2.6.1/data/mono-options.pc.in mono-2.6.1.new//data/mono-options.pc.in
---- mono-2.6.1/data/mono-options.pc.in	2009-09-25 16:58:13.000000000 +0200
-+++ mono-2.6.1.new//data/mono-options.pc.in	2010-03-10 18:03:50.117325481 +0100
+--- mono-6.14.1/data/mono-options.pc.in	2025-01-13 20:10:37.000000000 +0100
++++ mono-6.14.1/data/mono-options.pc.in	2026-08-09 13:10:58.493907435 +0200
 @@ -1,4 +1,4 @@
 -prefix=${pcfiledir}/../..
 +prefix=@prefix@
  assemblies_dir=${prefix}/lib/mono-source-libs
  Sources=${assemblies_dir}/Options.cs
  
-diff -urN mono-2.6.1/data/mono.pc.in mono-2.6.1.new//data/mono.pc.in
---- mono-2.6.1/data/mono.pc.in	2009-09-25 16:58:13.000000000 +0200
-+++ mono-2.6.1.new//data/mono.pc.in	2010-03-10 18:03:39.727319512 +0100
-@@ -1,5 +1,5 @@
--prefix=${pcfiledir}/../..
--exec_prefix=${pcfiledir}/../..
-+prefix=@prefix@
-+exec_prefix=@exec_prefix@
- libdir=${prefix}/@reloc_libdir@
- includedir=${prefix}/include/mono- at API_VER@
- sysconfdir=@sysconfdir@
diff --git a/mono-sonames.patch b/mono-sonames.patch
index f3dbeaa..3f29983 100644
--- a/mono-sonames.patch
+++ b/mono-sonames.patch
@@ -1,26 +1,11 @@
---- mono-3.8.0/data/config.in.orig	2014-08-28 18:22:10.000000000 +0200
-+++ mono-3.8.0/data/config.in	2014-09-06 16:12:15.928307992 +0200
-@@ -5,8 +5,8 @@
+--- mono-6.14.1/data/config.in	2025-01-13 20:10:37.000000000 +0100
++++ mono-6.14.1/data/config.in	2026-08-09 13:10:58.474831281 +0200
+@@ -5,7 +5,7 @@
  	<dllmap dll="intl" name="bind_textdomain_codeset" target="@LIBC@" os="solaris"/>
  	<dllmap dll="libintl" name="bind_textdomain_codeset" target="@LIBC@" os="solaris"/>
  	<dllmap dll="libintl" target="@INTL@" os="!windows"/>
 -	<dllmap dll="i:libxslt.dll" target="libxslt at libsuffix@" os="!windows"/>
--	<dllmap dll="i:odbc32.dll" target="libodbc at libsuffix@" os="!windows"/>
 +	<dllmap dll="i:libxslt.dll" target="libxslt.so.1" os="!windows"/>
-+	<dllmap dll="i:odbc32.dll" target="libodbc.so.2" os="!windows"/>
+ 	<dllmap dll="i:odbc32.dll" target="@ODBC@" os="!windows"/>
  	<dllmap dll="i:odbc32.dll" target="libiodbc.dylib" os="osx"/>
  	<dllmap dll="oci" target="libclntsh at libsuffix@" os="!windows"/>
- 	<dllmap dll="db2cli" target="libdb2_36 at libsuffix@" os="!windows"/>
-@@ -29,8 +29,8 @@
- 		<dllentry dll="__Internal" name="MoveMemory" target="mono_win32_compat_MoveMemory"/>
- 		<dllentry dll="__Internal" name="ZeroMemory" target="mono_win32_compat_ZeroMemory"/>
- 	</dllmap>
--	<dllmap dll="gdiplus" target="@libgdiplus_install_loc@" os="!windows"/>
--	<dllmap dll="gdiplus.dll" target="@libgdiplus_install_loc@"  os="!windows"/>
--	<dllmap dll="gdi32" target="@libgdiplus_install_loc@" os="!windows"/>
--	<dllmap dll="gdi32.dll" target="@libgdiplus_install_loc@" os="!windows"/>
-+	<dllmap dll="gdiplus" target="libgdiplus.so.0" os="!windows"/>
-+	<dllmap dll="gdiplus.dll" target="libgdiplus.so.0"  os="!windows"/>
-+	<dllmap dll="gdi32" target="libgdiplus.so.0" os="!windows"/>
-+	<dllmap dll="gdi32.dll" target="libgdiplus.so.0" os="!windows"/>
- </configuration>
diff --git a/mono-tests-assert-side-effects.patch b/mono-tests-assert-side-effects.patch
new file mode 100644
index 0000000..1f358cb
--- /dev/null
+++ b/mono-tests-assert-side-effects.patch
@@ -0,0 +1,51 @@
+--- mono-6.14.1/mono/tests/split-tailcall-interface-conservestack.cpp
++++ mono-6.14.1/mono/tests/split-tailcall-interface-conservestack.cpp
+@@ -15,6 +15,7 @@
+ #include <vector>
+ #include <string>
+ #include <assert.h>
++#include <stdio.h>
+ using namespace std;
+ #include <sys/stat.h>
+ #ifdef _WIN32
+@@ -56,7 +57,12 @@
+ 		{
+ 			tests.resize(tests.size() + 1);
+ 			test = &tests.back();
+-			assert(getline(cin, line));
++			// NB: must not sit in assert() -- NDEBUG builds would drop the read.
++			if (!getline (cin, line))
++			{
++				fprintf (stderr, "unexpected end of input\n");
++				exit (1);
++			}
+ 			if (line == "// test-split-suffix do not remove or edit this line")
+ 				break;
+ 		}
+--- mono-6.14.1/mono/tests/tailcall/split-fsharp.cpp
++++ mono-6.14.1/mono/tests/tailcall/split-fsharp.cpp
+@@ -87,12 +87,22 @@
+ 			}
+ 			tests.resize (tests.size () + 1);
+ 			test = &tests.back ();
+-			assert (getline (cin, line));
++			// NB: input validation must not sit in assert() -- these
++			// checks are load-bearing and NDEBUG builds would drop them.
++			if (!getline (cin, line))
++			{
++				fprintf (stderr, "unexpected end of input\n");
++				exit (1);
++			}
+ 			// tests start with ldstr
+ 			//printf("%s\n", line.c_str());
+ 			const bool ldstr = line.length () >= marker_ldstr.length () && memcmp(line.c_str (), marker_ldstr.c_str (), marker_ldstr.length ()) == 0;
+ 			const bool ldc_i4_0 = line.length () >= marker_ldc_i4_0.length () && memcmp(line.c_str (), marker_ldc_i4_0.c_str (), marker_ldc_i4_0.length ()) == 0;
+-			assert (ldstr || ldc_i4_0);
++			if (!ldstr && !ldc_i4_0)
++			{
++				fprintf (stderr, "unexpected line: %s\n", line.c_str ());
++				exit (1);
++			}
+ 			if (ldc_i4_0)
+ 			{
+ 				suffix.push_back (line);
diff --git a/mono-tls-check.patch b/mono-tls-check.patch
new file mode 100644
index 0000000..5f97c23
--- /dev/null
+++ b/mono-tls-check.patch
@@ -0,0 +1,76 @@
+--- mono-6.14.1/configure.ac
++++ mono-6.14.1/configure.ac
+@@ -2792,23 +2792,27 @@
+ 			__thread int i;
+ 			static int res1, res2;
+ 
+-			void thread_main (void *arg)
++			static void *thread_main (void *arg)
+ 			{
+-				i = arg;
++				int a = *(int *)arg;
++
++				i = a;
+ 				sleep (1);
+-				if (arg == 1)
+-					res1 = (i == arg);
++				if (a == 1)
++					res1 = (i == a);
+ 				else
+-					res2 = (i == arg);
++					res2 = (i == a);
++				return NULL;
+ 			}
+ 
+-			int main () {
++			int main (void) {
+ 				pthread_t t1, t2;
++				int a1 = 1, a2 = 2;
+ 
+ 				i = 5;
+ 
+-				pthread_create (&t1, NULL, thread_main, 1);
+-				pthread_create (&t2, NULL, thread_main, 2);
++				pthread_create (&t1, NULL, thread_main, &a1);
++				pthread_create (&t2, NULL, thread_main, &a2);
+ 
+ 				pthread_join (t1, NULL);
+ 				pthread_join (t2, NULL);
+--- mono-6.14.1/configure
++++ mono-6.14.1/configure
+@@ -26329,23 +26329,27 @@
+ 			__thread int i;
+ 			static int res1, res2;
+ 
+-			void thread_main (void *arg)
++			static void *thread_main (void *arg)
+ 			{
+-				i = arg;
++				int a = *(int *)arg;
++
++				i = a;
+ 				sleep (1);
+-				if (arg == 1)
+-					res1 = (i == arg);
++				if (a == 1)
++					res1 = (i == a);
+ 				else
+-					res2 = (i == arg);
++					res2 = (i == a);
++				return NULL;
+ 			}
+ 
+-			int main () {
++			int main (void) {
+ 				pthread_t t1, t2;
++				int a1 = 1, a2 = 2;
+ 
+ 				i = 5;
+ 
+-				pthread_create (&t1, NULL, thread_main, 1);
+-				pthread_create (&t2, NULL, thread_main, 2);
++				pthread_create (&t1, NULL, thread_main, &a1);
++				pthread_create (&t2, NULL, thread_main, &a2);
+ 
+ 				pthread_join (t1, NULL);
+ 				pthread_join (t2, NULL);
diff --git a/mono-x32.patch b/mono-x32.patch
deleted file mode 100644
index 7ce7a13..0000000
--- a/mono-x32.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-diff -ur mono-3.12.0/libgc/include/private/gc_locks.h mono-3.12.0-x32/libgc/include/private/gc_locks.h
---- mono-3.12.0/libgc/include/private/gc_locks.h	2014-10-30 23:11:01.000000000 +0100
-+++ mono-3.12.0-x32/libgc/include/private/gc_locks.h	2015-03-13 19:53:30.391221738 +0100
-@@ -437,7 +437,7 @@
- 						       GC_word new_val) 
-          {
- 	   char result;
--	   __asm__ __volatile__("lock; cmpxchgq %2, %0; setz %1"
-+	   __asm__ __volatile__("lock; cmpxchg %2, %0; setz %1"
- 	    	: "+m"(*(addr)), "=r"(result)
- 		: "r" (new_val), "a"(old) : "memory");
- 	   return (GC_bool) result;
-diff -ur mono-3.12.0/mono/mini/mini-codegen.c mono-3.12.0-x32-2/mono/mini/mini-codegen.c
---- mono-3.12.0/mono/mini/mini-codegen.c	2015-01-12 18:15:08.000000000 +0100
-+++ mono-3.12.0-x32-2/mono/mini/mini-codegen.c	2015-03-13 20:24:21.044619503 +0100
-@@ -164,7 +164,7 @@
- {
- 	regmask_t mask = allow & rs->ifree_mask;
- 
--#if defined(__x86_64__) && defined(__GNUC__)
-+#if defined(__x86_64__) && defined(__GNUC__) && !defined(__ILP32__)
-  {
- 	guint64 i;
- 
-diff -ur mono-3.12.0/mono/mini/regalloc.h mono-3.12.0-x32-2/mono/mini/regalloc.h
---- mono-3.12.0/mono/mini/regalloc.h	2014-10-30 23:11:02.000000000 +0100
-+++ mono-3.12.0-x32-2/mono/mini/regalloc.h	2015-03-13 20:23:14.031283837 +0100
-@@ -1,4 +1,4 @@
--#if defined(__native_client__) && defined(__x86_64__)
-+#if defined(__native_client__) && defined(__x86_64__) && !defined(__ILP32__)
- typedef guint64 regmask_t;
- #else
- typedef size_t regmask_t;
---- mono-3.12.1/mono/utils/monobitset.c.orig	2015-03-14 08:21:15.042164662 +0100
-+++ mono-3.12.1/mono/utils/monobitset.c	2015-03-14 08:21:19.602164473 +0100
-@@ -280,8 +280,11 @@ my_g_bit_nth_lsf (gsize mask, gint nth_b
- #if defined(__native_client__) && (defined(__i386__) || defined(__x86_64))
- #define USE_X86_32BIT_INSTRUCTIONS 1
- #endif
-+#if defined(__x86_64) && defined(__ILP32__)
-+#define ARCH_x32
-+#endif
- 
--#if (defined(__i386__) && defined(__GNUC__)) || defined(USE_X86_32BIT_INSTRUCTIONS)
-+#if (defined(__i386__) && defined(__GNUC__)) || defined(USE_X86_32BIT_INSTRUCTIONS) || defined(ARCH_x32)
-  {
- 	 int r;
- 	 /* This depends on mask != 0 */
-@@ -311,7 +314,7 @@ static inline gint
- my_g_bit_nth_lsf_nomask (gsize mask)
- {
- 	/* Mask is expected to be != 0 */
--#if (defined(__i386__) && defined(__GNUC__)) || defined(USE_X86_32BIT_INSTRUCTIONS)
-+#if (defined(__i386__) && defined(__GNUC__)) || defined(USE_X86_32BIT_INSTRUCTIONS) || defined(ARCH_x32)
- 	int r;
- 
- 	__asm__("bsfl %1,%0\n\t"
---- mono-3.12.1/mono/profiler/proflog.c.orig	2015-03-06 18:26:50.000000000 +0100
-+++ mono-3.12.1/mono/profiler/proflog.c	2015-03-14 08:45:51.238769378 +0100
-@@ -1783,8 +1783,14 @@ perf_event_syscall (struct perf_event_at
- {
- 	attr->size = PERF_ATTR_SIZE_VER0;
- 	//printf ("perf attr size: %d\n", attr->size);
-+#if defined(__NR_perf_event_open)
-+	return syscall(__NR_perf_event_open, attr, pid, cpu, group_fd, flags);
- #if defined(__x86_64__)
-+#  if defined(__ILP32__)
-+	return syscall(/*__NR_perf_event_open*/ 0x40000000+298, attr, pid, cpu, group_fd, flags);
-+#  else
- 	return syscall(/*__NR_perf_event_open*/ 298, attr, pid, cpu, group_fd, flags);
-+#  endif
- #elif defined(__i386__)
- 	return syscall(/*__NR_perf_event_open*/ 336, attr, pid, cpu, group_fd, flags);
- #elif defined(__arm__)
-========
-TODO:
-mono/metadata/mono-config.c (CPU config)
-mono/utils/mono-compiler.h (MONO_THREAD_VAR_OFFSET - needs x32 ABI knowledge)
-mono/utils/mono-context.g (MONO_CONTEXT_*)
-mono/utils/valgrind.h
-mono/mini/*-x86.* vs mono/mini/*-amd64.* ???
-mono/arch/x86 vs mono/arch/amd64 ???
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/mono.git/commitdiff/c1f855ea55bbc971cae306341ff99a8f3fc5ecc8




More information about the pld-cvs-commit mailing list