[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