Skip to content

Commit

Permalink
dev-lang/mono: bump to 4.4.0.40
Browse files Browse the repository at this point in the history
Package-Manager: portage-2.2.28
  • Loading branch information
cnd committed Apr 6, 2016
1 parent c035713 commit 01db1fd
Show file tree
Hide file tree
Showing 11 changed files with 380 additions and 0 deletions.
1 change: 1 addition & 0 deletions dev-lang/mono/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ DIST mono-4.2.1.124.tar.bz2 96235544 SHA256 6098476ce5c74685b23e7a96be8fe28a27db
DIST mono-4.2.2.10.tar.bz2 96232441 SHA256 c772db0be6f108e6832103675c41a3b31439e0203e77a9b321e48ac3bbb9fd25 SHA512 a50082a872e5866d264c1627477accd28539274af1488d0ad92e9fb0d4da56fe35fbe25f57062d7d570a527b9dd6df0d44c586633210c2c7a1fd34ae537bfc62 WHIRLPOOL 40c050a12ccd62ee3ae38ad74d3f0034e341a2d2d4936ff3a73610b265fe946df75741496d655b88e7bc61022d90cae174fc10ada07e93193337dd753b7939f6
DIST mono-4.2.2.30.tar.bz2 78365827 SHA256 57858cd033be9915d7abdc5158c1faae8fa05757c3b7117cab3d703aa696c56b SHA512 5aa93b362da84970310cc35bf02300718a20d2b508c263f45224d89f7aee84ead90c6fd7230ee2f17a2c02d480e3a8f7d2c9308cec0062a8f4c107f674a7c752 WHIRLPOOL fed4edbc5a724777bfe32edd4493c95904983e295c5c093f36231dfcdd9466daa8a21ed79c2686f8f0c6c5bbef8dafd88e82b3131e69e2d31e99fdc36de5aaf5
DIST mono-4.2.3.4.tar.bz2 79614085 SHA256 4703d390416a6e9977585f13711f59a6d54431086c2dbacee49888dcc31937be SHA512 6c7f0dbd6b9efa0481d72c68c7b4ea54cfda0a99c250040c696c7705f70c957c2c26e83221cd1272b159733bdad4e447675b79df68205a09c8d178d570629275 WHIRLPOOL 3acb7deac7c1047230d1940b2d2419d792703d5b65aac1c3baf441618c81de27eb4db66a717d91cc7bd22ae96d433e91832e1db517383e0b94467b1eb1aede84
DIST mono-4.4.0.40.tar.bz2 84877673 SHA256 803cd367562affb4150783e0b7dc7986f633ebcb61e6d733650a8485385e0fff SHA512 e9d2386a27316e5da03ac4943b60b436d51343a9bf04b924becd3c141726580fe74df373ade7b1061eaaab6c91a39a595aa95b84f132567f80af9a91da99eaf7 WHIRLPOOL 76e5545d8ffff92e1271b63c86ab0d703afaf9cf5685e4f8a9801700c84106037fcc34e1a9c91bce319779dc753a149162db212924996df2e843014fd1ad35ea
20 changes: 20 additions & 0 deletions dev-lang/mono/files/files/add_missing_vb_portable_targets.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Index: mcs/tools/xbuild/targets/Microsoft.Portable.VisualBasic_4.0.targets
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ mcs/tools/xbuild/targets/Microsoft.Portable.VisualBasic_4.0.targets 2015-05-15 15:55:12.074775985 +0100
@@ -0,0 +1,5 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="..\Microsoft.Portable.Core.props" />
+ <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
+ <Import Project="..\Microsoft.Portable.Core.targets" />
+</Project>
Index: mcs/tools/xbuild/targets/Microsoft.Portable.VisualBasic_4.5.targets
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ mcs/tools/xbuild/targets/Microsoft.Portable.VisualBasic_4.5.targets 2015-05-15 15:55:19.194775876 +0100
@@ -0,0 +1,5 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="..\Microsoft.Portable.Core.props" />
+ <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
+ <Import Project="..\Microsoft.Portable.Core.targets" />
+</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
diff --git a/mcs/class/System/System.Configuration/CustomizableFileSettingsProvider.cs b/mcs/class/System/System.Configuration/CustomizableFileSettingsProvider.cs
index 4b69010..1bb6195 100644
--- a/mcs/class/System/System.Configuration/CustomizableFileSettingsProvider.cs
+++ b/mcs/class/System/System.Configuration/CustomizableFileSettingsProvider.cs
@@ -578,6 +578,34 @@ namespace System.Configuration
private ExeConfigurationFileMap exeMapPrev = null;
private SettingsPropertyValueCollection values = null;

+ /// <remarks>
+ /// Hack to remove the XmlDeclaration that the XmlSerializer adds.
+ /// <br />
+ /// see <a href="https://github.com/mono/mono/pull/2273">Issue 2273</a> for details
+ /// </remarks>
+ private string StripXmlHeader(string serializedValue)
+ {
+ if (serializedValue == null)
+ {
+ return string.Empty;
+ }
+
+ XmlDocument doc = new XmlDocument();
+ XmlElement valueXml = doc.CreateElement("value");
+ valueXml.InnerXml = serializedValue;
+
+ foreach (XmlNode child in valueXml.ChildNodes) {
+ if (child.NodeType == XmlNodeType.XmlDeclaration) {
+ valueXml.RemoveChild(child);
+ break;
+ }
+ }
+
+ // InnerXml will give you well-formed XML that you could save as a separate document, and
+ // InnerText will immediately give you a pure-text representation of this inner XML.
+ return valueXml.InnerXml;
+ }
+
private void SaveProperties (ExeConfigurationFileMap exeMap, SettingsPropertyValueCollection collection, ConfigurationUserLevel level, SettingsContext context, bool checkUserLevel)
{
Configuration config = ConfigurationManager.OpenMappedExeConfiguration (exeMap, level);
@@ -623,7 +651,7 @@ namespace System.Configuration
element.Value.ValueXml = new XmlDocument ().CreateElement ("value");
switch (value.Property.SerializeAs) {
case SettingsSerializeAs.Xml:
- element.Value.ValueXml.InnerXml = (value.SerializedValue as string) ?? string.Empty;
+ element.Value.ValueXml.InnerXml = StripXmlHeader(value.SerializedValue as string);
break;
case SettingsSerializeAs.String:
element.Value.ValueXml.InnerText = value.SerializedValue as string;
28 changes: 28 additions & 0 deletions dev-lang/mono/files/files/fix-for-GitExtensions-issue-2710.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
diff --git a/mcs/class/System/System.Configuration/SettingsPropertyValue.cs b/mcs/class/System/System.Configuration/SettingsPropertyValue.cs
index 9bf62c0..9f026461 100644
--- a/mcs/class/System/System.Configuration/SettingsPropertyValue.cs
+++ b/mcs/class/System/System.Configuration/SettingsPropertyValue.cs
@@ -118,11 +118,18 @@ namespace System.Configuration
#if (XML_DEP)
case SettingsSerializeAs.Xml:
if (propertyValue != null) {
- XmlSerializer serializer = new XmlSerializer (propertyValue.GetType ());
- StringWriter w = new StringWriter(CultureInfo.InvariantCulture);
-
- serializer.Serialize (w, propertyValue);
- serializedValue = w.ToString();
+ using (StringWriter w = new StringWriter(CultureInfo.InvariantCulture))
+ {
+ var xmlSettings = new XmlWriterSettings();
+ xmlSettings.OmitXmlDeclaration = true;
+ using (var writer = XmlWriter.Create(w, xmlSettings))
+ {
+ XmlSerializer serializer = new XmlSerializer(propertyValue.GetType ());
+ var emptyNamespaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty });
+ serializer.Serialize(writer, propertyValue, emptyNamespaces);
+ } // writer.Flush happens here
+ serializedValue = w.ToString();
+ }
}
else
serializedValue = null;
13 changes: 13 additions & 0 deletions dev-lang/mono/files/files/fix-for-bug36724.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/mcs/class/System.Web/System.Web.Util/UrlUtils.cs b/mcs/class/System.Web/System.Web.Util/UrlUtils.cs
index 4f07e83..e229a91 100644
--- a/mcs/class/System.Web/System.Web.Util/UrlUtils.cs
+++ b/mcs/class/System.Web/System.Web.Util/UrlUtils.cs
@@ -54,7 +54,7 @@ namespace System.Web.Util {
if (path.StartsWith (appvpath))
path = path.Substring (appvpath.Length);

- if (path [0] == '/')
+ if (path.StartsWith("/"))
path = path.Length > 1 ? path.Substring (1) : "";

return Canonic (appvpath + "(" + id + ")/" + path);
12 changes: 12 additions & 0 deletions dev-lang/mono/files/files/mono-3.2.1-mdoc-fix.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
diff -Naur mono-3.2.1.orig/mcs/tools/mdoc/Resources/monodoc-ecma.xsd mono-3.2.1/mcs/tools/mdoc/Resources/monodoc-ecma.xsd
--- mono-3.2.1.orig/mcs/tools/mdoc/Resources/monodoc-ecma.xsd 2013-08-26 09:33:59.410610438 +0200
+++ mono-3.2.1/mcs/tools/mdoc/Resources/monodoc-ecma.xsd 2013-08-26 09:34:54.057804438 +0200
@@ -351,7 +351,7 @@
<xs:element name="format">
<xs:complexType>
<xs:sequence>
- <xs:any minOccurs="0" processContents="lax" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" />
</xs:sequence>
<xs:attribute ref="type" />
</xs:complexType>
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
diff -up mono/metadata/decimal-ms.c.than
mono/metadata/decimal-ms.c
--- mono/metadata/decimal-ms.c.than 2015-07-06 08:21:27.524461795
-0400
+++ mono/metadata/decimal-ms.c 2015-07-06 08:30:26.954461795
-0400
@@ -55,8 +55,13 @@ static const uint32_t ten_to_ten_div_4 =
#define DECIMAL_LO32(dec) ((dec).v.v.Lo32)
#define DECIMAL_MID32(dec) ((dec).v.v.Mid32)
#define DECIMAL_HI32(dec) ((dec).Hi32)
-#define DECIMAL_LO64_GET(dec) ((dec).v.Lo64)
-#define DECIMAL_LO64_SET(dec,value) {(dec).v.Lo64 = value; }
+#if G_BYTE_ORDER != G_LITTLE_ENDIAN
+# define DECIMAL_LO64_GET(dec) (((uint64_t)((dec).v.v.Mid32) << 32) | (dec).v.v.Lo32)
+# define DECIMAL_LO64_SET(dec,value) {(dec).v.v.Lo32 = (value); (dec).v.v.Mid32 = ((value) >> 32); }
+#else
+# define DECIMAL_LO64_GET(dec) ((dec).v.Lo64)
+# define DECIMAL_LO64_SET(dec,value) {(dec).v.Lo64 = value; }
+#endif

#define DECIMAL_SETZERO(dec) {DECIMAL_LO32(dec) = 0; DECIMAL_MID32(dec) = 0; DECIMAL_HI32(dec) = 0; DECIMAL_SIGNSCALE(dec) = 0;}
#define COPYDEC(dest, src) {DECIMAL_SIGNSCALE(dest) = DECIMAL_SIGNSCALE(src); DECIMAL_HI32(dest) = DECIMAL_HI32(src); \
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
===================================================================
RCS file: mono/dis/RCS/Makefile.am,v
retrieving revision 1.1
diff -up -r1.1 mono/dis/Makefile.am
--- mono/dis/Makefile.am 2015/05/08 15:00:22 1.1
+++ mono/dis/Makefile.am 2015/07/14 11:20:29
@@ -7,7 +7,7 @@ endif
if SUPPORT_SGEN
metadata_lib=$(top_builddir)/mono/metadata/libmonoruntimesgen-static.la
else
-metadata_lib=$(top_builddir)/mono/metadata/libmonoruntime-static.a
+metadata_lib=$(top_builddir)/mono/metadata/libmonoruntime-static.la
gc_lib=$(LIBGC_STATIC_LIBS)
endif

79 changes: 79 additions & 0 deletions dev-lang/mono/files/files/mono-4.0.2.5-fix-ppc-atomic-add-i4.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
From f967c79926900343f399c75624deedaba460e544 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= <[email protected]>
Date: Mon, 3 Aug 2015 17:32:07 +0200
Subject: [PATCH 1/2] [ppc] Instruction length of atomic_add_i4 is 28.

---
mono/mini/cpu-ppc.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mono/mini/cpu-ppc.md b/mono/mini/cpu-ppc.md
index ba2ec60..e6baf91 100644
--- a/mono/mini/cpu-ppc.md
+++ b/mono/mini/cpu-ppc.md
@@ -314,5 +314,5 @@ vcall2_membase: src1:b len:16 clob:c

jump_table: dest:i len:8

-atomic_add_i4: src1:b src2:i dest:i len:20
+atomic_add_i4: src1:b src2:i dest:i len:28
atomic_cas_i4: src1:b src2:i src3:i dest:i len:38

From 8f379f0c8f98493180b508b9e68b9aa76c0c5bdf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= <[email protected]>
Date: Mon, 3 Aug 2015 17:32:31 +0200
Subject: [PATCH 2/2] [ppc] Fix atomic_add_i4 support for 32-bit PPC.

---
mono/mini/mini-ppc.c | 31 ++++++++++++++++---------------
1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/mono/mini/mini-ppc.c b/mono/mini/mini-ppc.c
index 758a63f..06528bd 100644
--- a/mono/mini/mini-ppc.c
+++ b/mono/mini/mini-ppc.c
@@ -4420,6 +4420,22 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
else
ppc_mr (code, ins->dreg, ins->sreg1);
break;
+#else
+ case OP_ICONV_TO_R4:
+ case OP_ICONV_TO_R8: {
+ if (cpu_hw_caps & PPC_ISA_64) {
+ ppc_srawi(code, ppc_r0, ins->sreg1, 31);
+ ppc_stw (code, ppc_r0, -8, ppc_r1);
+ ppc_stw (code, ins->sreg1, -4, ppc_r1);
+ ppc_lfd (code, ins->dreg, -8, ppc_r1);
+ ppc_fcfid (code, ins->dreg, ins->dreg);
+ if (ins->opcode == OP_ICONV_TO_R4)
+ ppc_frsp (code, ins->dreg, ins->dreg);
+ }
+ break;
+ }
+#endif
+
case OP_ATOMIC_ADD_I4:
CASE_PPC64 (OP_ATOMIC_ADD_I8) {
int location = ins->inst_basereg;
@@ -4453,21 +4469,6 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
ppc_mr (code, ins->dreg, ppc_r0);
break;
}
-#else
- case OP_ICONV_TO_R4:
- case OP_ICONV_TO_R8: {
- if (cpu_hw_caps & PPC_ISA_64) {
- ppc_srawi(code, ppc_r0, ins->sreg1, 31);
- ppc_stw (code, ppc_r0, -8, ppc_r1);
- ppc_stw (code, ins->sreg1, -4, ppc_r1);
- ppc_lfd (code, ins->dreg, -8, ppc_r1);
- ppc_fcfid (code, ins->dreg, ins->dreg);
- if (ins->opcode == OP_ICONV_TO_R4)
- ppc_frsp (code, ins->dreg, ins->dreg);
- }
- break;
- }
-#endif
case OP_ATOMIC_CAS_I4:
CASE_PPC64 (OP_ATOMIC_CAS_I8) {
int location = ins->sreg1;
22 changes: 22 additions & 0 deletions dev-lang/mono/files/files/systemweb3.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
--- a/mcs/class/System.Web.Routing/System.Web.Routing/RouteBase.cs 2015-05-08 18:00:15.000000000 +0300
+++ b/mcs/class/System.Web.Routing/System.Web.Routing/RouteBase.cs 2015-07-20 14:13:09.215784924 +0300
@@ -41,5 +41,19 @@
{
public abstract RouteData GetRouteData (HttpContextBase httpContext);
public abstract VirtualPathData GetVirtualPath (RequestContext requestContext, RouteValueDictionary values);
+
+ // Default needs to be true to avoid breaking change
+ private bool _routeExistingFiles = true;
+ public bool RouteExistingFiles
+ {
+ get
+ {
+ return _routeExistingFiles;
+ }
+ set
+ {
+ _routeExistingFiles = value;
+ }
+ }
}
}
120 changes: 120 additions & 0 deletions dev-lang/mono/mono-4.4.0.40.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=6
AUTOTOOLS_PRUNE_LIBTOOL_FILES="all"
AUTOTOOLS_AUTORECONF=1

inherit eutils linux-info mono-env flag-o-matic pax-utils versionator

DESCRIPTION="Mono runtime and class libraries, a C# compiler/interpreter"
HOMEPAGE="http://www.mono-project.com/Main_Page"
SRC_URI="http://download.mono-project.com/sources/${PN}/${P}.tar.bz2"

LICENSE="MIT LGPL-2.1 GPL-2 BSD-4 NPL-1.1 Ms-PL GPL-2-with-linking-exception IDPL"
SLOT="0"

KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux"

IUSE="nls minimal pax_kernel xen doc"

COMMONDEPEND="
!minimal? ( >=dev-dotnet/libgdiplus-2.10 )
ia64? ( sys-libs/libunwind )
nls? ( sys-devel/gettext )
"
RDEPEND="${COMMONDEPEND}
|| ( www-client/links www-client/lynx )
"
DEPEND="${COMMONDEPEND}
sys-devel/bc
virtual/yacc
pax_kernel? ( sys-apps/elfix )
!dev-lang/mono-basic
"

MAKEOPTS="${MAKEOPTS} -j1" #nowarn
S="${WORKDIR}/${PN}-$(get_version_component_range 1-3)"

pkg_pretend() {
# https://github.com/gentoo/gentoo/blob/f200e625bda8de696a28338318c9005b69e34710/eclass/linux-info.eclass#L686
# If CONFIG_SYSVIPC is not set in your kernel .config, mono will hang while compiling.
# See http://bugs.gentoo.org/261869 for more info."
CONFIG_CHECK="SYSVIPC"
use kernel_linux && check_extra_config
}

pkg_setup() {
linux-info_pkg_setup
mono-env_pkg_setup
}

src_prepare() {
# we need to sed in the paxctl-ng -mr in the runtime/mono-wrapper.in so it don't
# get killed in the build proces when MPROTECT is enable. #286280
# RANDMMAP kill the build proces to #347365
# use paxmark.sh to get PT/XT logic #532244
if use pax_kernel ; then
ewarn "We are disabling MPROTECT on the mono binary."

# issue 9 : https://github.com/Heather/gentoo-dotnet/issues/9
sed '/exec "/ i\paxmark.sh -mr "$r/@mono_runtime@"' -i "${S}"/runtime/mono-wrapper.in || die "Failed to sed mono-wrapper.in"
fi

# mono build system can fail otherwise
strip-flags

# Fix VB targets
# http://osdir.com/ml/general/2015-05/msg20808.html
#eapply "${FILESDIR}/add_missing_vb_portable_targets.patch"

# Fix build when sgen disabled
# https://bugzilla.xamarin.com/show_bug.cgi?id=32015
#eapply "${FILESDIR}/${PN}-4.0.2.5-fix-mono-dis-makefile-am-when-without-sgen.patch"

# TODO: update patch
# Fix atomic_add_i4 support for 32-bit ppc
# https://github.com/mono/mono/compare/f967c79926900343f399c75624deedaba460e544^...8f379f0c8f98493180b508b9e68b9aa76c0c5bdf
#epatch "${FILESDIR}/${PN}-4.0.2.5-fix-ppc-atomic-add-i4.patch"

# TODO: update patch
#epatch "${FILESDIR}/systemweb3.patch"
#epatch "${FILESDIR}/fix-for-GitExtensions-issue-2710-another-resolution.patch"
#epatch "${FILESDIR}/fix-for-bug36724.patch"

default_src_prepare
#eapply_user
}

src_configure() {
local myeconfargs=(
--disable-silent-rules
$(use_with xen xen_opt)
--without-ikvm-native
--disable-dtrace
$(use_with doc mcs-docs)
$(use_enable nls)
)

default_src_configure
}

src_compile() {
default_src_compile
}

src_test() {
cd mcs/tests || die
emake check
}

src_install() {
default_src_install

# Remove files not respecting LDFLAGS and that we are not supposed to provide, see Fedora
# mono.spec and http://www.mail-archive.com/[email protected]/msg24870.html
# for reference.
rm -f "${ED}"/usr/lib/mono/{2.0,4.5}/mscorlib.dll.so || die
rm -f "${ED}"/usr/lib/mono/{2.0,4.5}/mcs.exe.so || die
}

0 comments on commit 01db1fd

Please sign in to comment.