mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2025-01-19 05:57:04 +01:00
gnu: Add mono-1.2.6.
* gnu/packages/dotnet.scm (mono-1.2.6): New variable. * gnu/packages/patches/mono-1.2.6-bootstrap.patch: New patch. * gnu/local.mk (dist_patch_DATA): Register it. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Change-Id: I02799b39eb53f01f7103e9a127428f420b287f4a
This commit is contained in:
parent
d65ac39c91
commit
7d96fa640a
3 changed files with 723 additions and 0 deletions
|
@ -1827,6 +1827,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/mpg321-gcc-10.patch \
|
||||
%D%/packages/patches/module-init-tools-moduledir.patch \
|
||||
%D%/packages/patches/monero-use-system-miniupnpc.patch \
|
||||
%D%/packages/patches/mono-1.2.6-bootstrap.patch \
|
||||
%D%/packages/patches/mosaicatcher-unbundle-htslib.patch \
|
||||
%D%/packages/patches/mrrescue-support-love-11.patch \
|
||||
%D%/packages/patches/mtools-mformat-uninitialized.patch \
|
||||
|
|
|
@ -260,3 +260,140 @@ (define-public pnetlib-git
|
|||
"DotGNU Portable.NET Library contains an implementation of the C# library,
|
||||
for use with .NET-capable runtime engines and applications.")
|
||||
(license license:gpl2+))))
|
||||
|
||||
(define prepare-mono-source-0
|
||||
#~((when (file-exists? "configure")
|
||||
(delete-file "configure"))
|
||||
(when (file-exists? "libgc")
|
||||
(delete-file-recursively "libgc"))
|
||||
;; just to be sure
|
||||
(for-each delete-file
|
||||
(find-files "." "\\.(dll|exe|DLL|EXE|so)$"))
|
||||
;; We deleted docs/AgilityPack.dll earlier (if it existed), and it's
|
||||
;; required for building the documentation, so skip building the
|
||||
;; documentation. According to docs/README, "the sources to this DLL
|
||||
;; live in GNOME CVS module beagle/Filters/AgilityPack".
|
||||
(substitute* "Makefile.am"
|
||||
(("^(|DIST_|MOONLIGHT_|MONOTOUCH_)SUBDIRS =.*" all)
|
||||
(string-replace-substring
|
||||
(string-replace-substring
|
||||
(string-replace-substring all " docs" "")
|
||||
" $(libgc_dir)" "")
|
||||
" libgc" "")))))
|
||||
|
||||
;; A lot of the fixes are shared between many versions, and it doesn't hurt to
|
||||
;; apply them to versions before or after they are necessary, so just include
|
||||
;; them all.
|
||||
(define prepare-mono-source
|
||||
#~(begin
|
||||
#$@prepare-mono-source-0
|
||||
(substitute* (filter file-exists?
|
||||
'("configure.in"
|
||||
"configure.ac"))
|
||||
(("int f = isinf \\(1\\);")
|
||||
"int f = isinf (1.0);"))
|
||||
;; makedev is in <sys/sysmacros.h> now. Include it.
|
||||
(substitute* "mono/io-layer/processes.c"
|
||||
(("#ifdef HAVE_SYS_MKDEV_H") "#if 1")
|
||||
(("sys/mkdev.h") "sys/sysmacros.h"))
|
||||
(substitute* (filter file-exists? '("mono/metadata/boehm-gc.c"))
|
||||
(("GC_set_finalizer_notify_proc")
|
||||
"GC_set_await_finalize_proc")
|
||||
(("GC_toggleref_register_callback")
|
||||
"GC_set_toggleref_func"))
|
||||
(substitute* (filter file-exists? '("mono/utils/mono-compiler.h"))
|
||||
(("static __thread gpointer x MONO_TLS_FAST")
|
||||
"static __thread gpointer x __attribute__((used))"))
|
||||
;; Since the time the old mono versions were written at, gcc has started
|
||||
;; removing more things it thinks are unused (for example because they
|
||||
;; are only referenced in inline assembly of some sort).
|
||||
(substitute* (filter file-exists? '("mono/metadata/sgen-alloc.c"))
|
||||
(("static __thread char \\*\\*tlab_next_addr")
|
||||
"static __thread char **tlab_next_addr __attribute__((used))"))
|
||||
(substitute* (filter file-exists? '("mono/utils/mono-compiler.h"))
|
||||
(("#define MONO_TLS_FAST ")
|
||||
"#define MONO_TLS_FAST __attribute__((used)) "))))
|
||||
|
||||
(define-public mono-1.2.6
|
||||
(package
|
||||
(version "1.2.6")
|
||||
(name "mono")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://download.mono-project.com/sources/mono/"
|
||||
"mono-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32 "03sn7wyvrjkkkbrqajpmqifxfn83p30qprizpb3m6c5cdhwlzk14"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 string-fun)))
|
||||
(snippet #~(begin
|
||||
#$prepare-mono-source
|
||||
(with-directory-excursion
|
||||
"mcs/class/System/System.Text.RegularExpressions"
|
||||
(delete-file "BaseMachine.cs")
|
||||
;; Can't patch a file with different line endings,
|
||||
;; so the patch creates a new one, and we overwrite
|
||||
;; the old one here.
|
||||
(rename-file "BaseMachine.cs-2"
|
||||
"BaseMachine.cs"))))
|
||||
(patches (search-patches "mono-1.2.6-bootstrap.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
(list autoconf
|
||||
automake
|
||||
bison
|
||||
libtool
|
||||
pnet-git
|
||||
pnetlib-git
|
||||
pkg-config))
|
||||
(inputs
|
||||
(list glib
|
||||
libgc
|
||||
libx11
|
||||
zlib))
|
||||
(arguments
|
||||
(list
|
||||
#:configure-flags #~(list "--with-gc=boehm")
|
||||
#:make-flags #~(list (string-append "EXTERNAL_MCS="
|
||||
#+(this-package-native-input "pnet-git")
|
||||
"/bin/cscc")
|
||||
(string-append "EXTERNAL_RUNTIME="
|
||||
#+(this-package-native-input "pnet-git")
|
||||
"/bin/ilrun")
|
||||
"CFLAGS=-O2 -g -DARG_MAX=500"
|
||||
#$(string-append "CC=" (cc-for-target))
|
||||
"V=1")
|
||||
;; build fails nondeterministically without this
|
||||
#:parallel-build? #f
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'set-env
|
||||
(lambda _
|
||||
;; All tests under mcs/class fail trying to access $HOME
|
||||
(setenv "HOME" "/tmp")
|
||||
;; ZIP files have "DOS time" which starts in Jan 1980.
|
||||
(setenv "SOURCE_DATE_EPOCH" "315532800"))))
|
||||
;; System.Object isn't marked as serializable because it causes issues
|
||||
;; with compiling with pnet (circular class reference between Object and
|
||||
;; SerializableAttribute), and this causes tests to fail.
|
||||
#:tests? #f))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "MONO_PATH")
|
||||
(files (list "lib/mono")))))
|
||||
(synopsis "Compiler and libraries for the C# programming language")
|
||||
(description "Mono is a compiler, vm, debugger and set of libraries for C#
|
||||
a C-style programming language from Microsoft that is very similar to Java.")
|
||||
(home-page "https://www.mono-project.com/")
|
||||
;; See ./LICENSE
|
||||
(license (list
|
||||
;; most of mcs/tools, mono/man, most of mcs/class, tests by
|
||||
;; default, mono/eglib
|
||||
license:x11
|
||||
;; mcs/mcs, mcs/gmcs, some of mcs/tools
|
||||
license:gpl1+ ;; note: ./mcs/LICENSE.GPL specifies no version
|
||||
;; mono/mono (the mono VM, I think they meant mono/mini)
|
||||
license:lgpl2.0+ ;; note: ./mcs/LICENSE.LGPL specifies no version
|
||||
;; mcs/jay
|
||||
license:bsd-4))))
|
||||
|
|
585
gnu/packages/patches/mono-1.2.6-bootstrap.patch
Normal file
585
gnu/packages/patches/mono-1.2.6-bootstrap.patch
Normal file
|
@ -0,0 +1,585 @@
|
|||
diff --git a/mcs/class/System/System.Diagnostics/ICollectData.cs b/mcs/class/System/System.Diagnostics/ICollectData.cs
|
||||
index c52f9871589..c66c1936d3d 100644
|
||||
--- a/mcs/class/System/System.Diagnostics/ICollectData.cs
|
||||
+++ b/mcs/class/System/System.Diagnostics/ICollectData.cs
|
||||
@@ -41,7 +41,7 @@ namespace System.Diagnostics
|
||||
#endif
|
||||
public interface ICollectData {
|
||||
void CloseData ();
|
||||
- [return: MarshalAs(UnmanagedType.I4)]
|
||||
+ //[return: MarshalAs(UnmanagedType.I4)]
|
||||
void CollectData (
|
||||
[In] [MarshalAs(UnmanagedType.I4)] int id,
|
||||
[In] [MarshalAs(UnmanagedType.SysInt)] IntPtr valueName,
|
||||
diff --git a/mcs/class/System/System.Diagnostics/LocalFileEventLog.cs b/mcs/class/System/System.Diagnostics/LocalFileEventLog.cs
|
||||
index 280e6a97227..c41816dca24 100644
|
||||
--- a/mcs/class/System/System.Diagnostics/LocalFileEventLog.cs
|
||||
+++ b/mcs/class/System/System.Diagnostics/LocalFileEventLog.cs
|
||||
@@ -140,6 +140,30 @@ namespace System.Diagnostics
|
||||
file_watcher.EnableRaisingEvents = false;
|
||||
}
|
||||
|
||||
+ void FileCreationWatcher(object o, FileSystemEventArgs e)
|
||||
+ {
|
||||
+ lock (this) {
|
||||
+ if (_notifying)
|
||||
+ return;
|
||||
+ _notifying = true;
|
||||
+ }
|
||||
+
|
||||
+ // Process every new entry in one notification event.
|
||||
+ try {
|
||||
+ while (GetLatestIndex () > last_notification_index) {
|
||||
+ try {
|
||||
+ CoreEventLog.OnEntryWritten (GetEntry (last_notification_index++));
|
||||
+ } catch (Exception ex) {
|
||||
+ // FIXME: find some proper way to output this error
|
||||
+ Debug.WriteLine (ex);
|
||||
+ }
|
||||
+ }
|
||||
+ } finally {
|
||||
+ lock (this)
|
||||
+ _notifying = false;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
public override void EnableNotification ()
|
||||
{
|
||||
if (file_watcher == null) {
|
||||
@@ -149,28 +173,7 @@ namespace System.Diagnostics
|
||||
|
||||
file_watcher = new FileSystemWatcher ();
|
||||
file_watcher.Path = logDir;
|
||||
- file_watcher.Created += delegate (object o, FileSystemEventArgs e) {
|
||||
- lock (this) {
|
||||
- if (_notifying)
|
||||
- return;
|
||||
- _notifying = true;
|
||||
- }
|
||||
-
|
||||
- // Process every new entry in one notification event.
|
||||
- try {
|
||||
- while (GetLatestIndex () > last_notification_index) {
|
||||
- try {
|
||||
- CoreEventLog.OnEntryWritten (GetEntry (last_notification_index++));
|
||||
- } catch (Exception ex) {
|
||||
- // FIXME: find some proper way to output this error
|
||||
- Debug.WriteLine (ex);
|
||||
- }
|
||||
- }
|
||||
- } finally {
|
||||
- lock (this)
|
||||
- _notifying = false;
|
||||
- }
|
||||
- };
|
||||
+ file_watcher.Created += new FileSystemEventHandler(FileCreationWatcher);
|
||||
}
|
||||
last_notification_index = GetLatestIndex ();
|
||||
file_watcher.EnableRaisingEvents = true;
|
||||
diff --git a/mcs/class/System/System.IO/InotifyWatcher.cs b/mcs/class/System/System.IO/InotifyWatcher.cs
|
||||
index d8e7acce3a7..7b0907eebc1 100644
|
||||
--- a/mcs/class/System/System.IO/InotifyWatcher.cs
|
||||
+++ b/mcs/class/System/System.IO/InotifyWatcher.cs
|
||||
@@ -423,19 +423,36 @@ namespace System.IO {
|
||||
return 16 + len;
|
||||
}
|
||||
|
||||
+ class ThingEnumerator : IEnumerator, IEnumerable
|
||||
+ {
|
||||
+ object thing;
|
||||
+ int j;
|
||||
+ public ThingEnumerator(object thing)
|
||||
+ { this.thing = thing; j = -1; }
|
||||
+
|
||||
+ public IEnumerator GetEnumerator() { return this; }
|
||||
+ public bool MoveNext()
|
||||
+ {
|
||||
+ if(thing == null) { return false; }
|
||||
+ if(thing is ArrayList)
|
||||
+ {
|
||||
+ ArrayList list = (ArrayList) thing;
|
||||
+ if(j+1 >= list.Count) { return false; }
|
||||
+ j++;
|
||||
+ return true;
|
||||
+ }
|
||||
+ if(j == -1) { j = 0; return true; }
|
||||
+ return false;
|
||||
+ }
|
||||
+ public void Reset() { j = -1; }
|
||||
+ public object Current
|
||||
+ { get { if(thing is ArrayList) return ((ArrayList)thing)[j];
|
||||
+ return thing; }}
|
||||
+ }
|
||||
+
|
||||
static IEnumerable GetEnumerator (object source)
|
||||
{
|
||||
- if (source == null)
|
||||
- yield break;
|
||||
-
|
||||
- if (source is InotifyData)
|
||||
- yield return source;
|
||||
-
|
||||
- if (source is ArrayList) {
|
||||
- ArrayList list = (ArrayList) source;
|
||||
- for (int i = 0; i < list.Count; i++)
|
||||
- yield return list [i];
|
||||
- }
|
||||
+ return new ThingEnumerator(source);
|
||||
}
|
||||
|
||||
/* Interesting events:
|
||||
diff --git a/mcs/class/System/System.Net/ServicePoint.cs b/mcs/class/System/System.Net/ServicePoint.cs
|
||||
index a884d90f507..e1c73b098c2 100644
|
||||
--- a/mcs/class/System/System.Net/ServicePoint.cs
|
||||
+++ b/mcs/class/System/System.Net/ServicePoint.cs
|
||||
@@ -137,7 +137,7 @@ namespace System.Net
|
||||
get {
|
||||
return idleSince;
|
||||
}
|
||||
- internal set {
|
||||
+ set {
|
||||
lock (locker)
|
||||
idleSince = value;
|
||||
}
|
||||
diff --git a/mcs/class/System/System.Text.RegularExpressions/BaseMachine.cs-2 b/mcs/class/System/System.Text.RegularExpressions/BaseMachine.cs-2
|
||||
new file mode 100644
|
||||
index 00000000000..a685e2679b7
|
||||
--- /dev/null
|
||||
+++ b/mcs/class/System/System.Text.RegularExpressions/BaseMachine.cs-2
|
||||
@@ -0,0 +1,168 @@
|
||||
+//
|
||||
+// BaseMachine.jvm.cs
|
||||
+//
|
||||
+// Author:
|
||||
+// author: Dan Lewis (dlewis@gmx.co.uk)
|
||||
+// (c) 2002
|
||||
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
|
||||
+//
|
||||
+
|
||||
+//
|
||||
+// Permission is hereby granted, free of charge, to any person obtaining
|
||||
+// a copy of this software and associated documentation files (the
|
||||
+// "Software"), to deal in the Software without restriction, including
|
||||
+// without limitation the rights to use, copy, modify, merge, publish,
|
||||
+// distribute, sublicense, and/or sell copies of the Software, and to
|
||||
+// permit persons to whom the Software is furnished to do so, subject to
|
||||
+// the following conditions:
|
||||
+//
|
||||
+// The above copyright notice and this permission notice shall be
|
||||
+// included in all copies or substantial portions of the Software.
|
||||
+//
|
||||
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
+//
|
||||
+
|
||||
+using System;
|
||||
+using System.Collections;
|
||||
+using System.Collections.Specialized;
|
||||
+
|
||||
+namespace System.Text.RegularExpressions
|
||||
+{
|
||||
+ abstract class BaseMachine : IMachine
|
||||
+ {
|
||||
+ internal delegate void MatchAppendEvaluator (Match match, StringBuilder sb);
|
||||
+
|
||||
+ public virtual string Replace (Regex regex, string input, string replacement, int count, int startat)
|
||||
+ {
|
||||
+ ReplacementEvaluator ev = new ReplacementEvaluator (regex, replacement);
|
||||
+ if (regex.RightToLeft)
|
||||
+ return RTLReplace (regex, input, new MatchEvaluator (ev.Evaluate), count, startat);
|
||||
+ else
|
||||
+ return LTRReplace (regex, input, new MatchAppendEvaluator (ev.EvaluateAppend), count, startat);
|
||||
+ }
|
||||
+
|
||||
+ virtual public string [] Split (Regex regex, string input, int count, int startat)
|
||||
+ {
|
||||
+ ArrayList splits = new ArrayList ();
|
||||
+ if (count == 0)
|
||||
+ count = Int32.MaxValue;
|
||||
+
|
||||
+ int ptr = startat;
|
||||
+ Match m = null;
|
||||
+ while (--count > 0) {
|
||||
+ if (m != null)
|
||||
+ m = m.NextMatch ();
|
||||
+ else
|
||||
+ m = regex.Match (input, ptr);
|
||||
+
|
||||
+ if (!m.Success)
|
||||
+ break;
|
||||
+
|
||||
+ if (regex.RightToLeft)
|
||||
+ splits.Add (input.Substring (m.Index + m.Length, ptr - m.Index - m.Length));
|
||||
+ else
|
||||
+ splits.Add (input.Substring (ptr, m.Index - ptr));
|
||||
+
|
||||
+ int gcount = m.Groups.Count;
|
||||
+ for (int gindex = 1; gindex < gcount; gindex++) {
|
||||
+ Group grp = m.Groups [gindex];
|
||||
+ splits.Add (input.Substring (grp.Index, grp.Length));
|
||||
+ }
|
||||
+
|
||||
+ if (regex.RightToLeft)
|
||||
+ ptr = m.Index;
|
||||
+ else
|
||||
+ ptr = m.Index + m.Length;
|
||||
+
|
||||
+ }
|
||||
+
|
||||
+ if (regex.RightToLeft && ptr >= 0)
|
||||
+ splits.Add (input.Substring (0, ptr));
|
||||
+ if (!regex.RightToLeft && ptr <= input.Length)
|
||||
+ splits.Add (input.Substring (ptr));
|
||||
+
|
||||
+ return (string []) splits.ToArray (typeof (string));
|
||||
+ }
|
||||
+
|
||||
+ virtual public Match Scan (Regex regex, string text, int start, int end)
|
||||
+ {
|
||||
+ throw new NotImplementedException ("Scan method must be implemented in derived classes");
|
||||
+ }
|
||||
+
|
||||
+ virtual public string Result (string replacement, Match match)
|
||||
+ {
|
||||
+ return ReplacementEvaluator.Evaluate (replacement, match);
|
||||
+ }
|
||||
+
|
||||
+ internal static string LTRReplace (Regex regex, string input, MatchAppendEvaluator evaluator, int count, int startat)
|
||||
+ {
|
||||
+ Match m = regex.Match (input, startat);
|
||||
+ if (!m.Success)
|
||||
+ return input;
|
||||
+
|
||||
+ StringBuilder result = new StringBuilder ();
|
||||
+ int ptr = startat;
|
||||
+ int counter = count;
|
||||
+
|
||||
+ result.Append (input, 0, ptr);
|
||||
+
|
||||
+ do {
|
||||
+ if (count != -1)
|
||||
+ if (counter-- <= 0)
|
||||
+ break;
|
||||
+ if (m.Index < ptr)
|
||||
+ throw new SystemException ("how");
|
||||
+ result.Append (input, ptr, m.Index - ptr);
|
||||
+ evaluator (m, result);
|
||||
+
|
||||
+ ptr = m.Index + m.Length;
|
||||
+ m = m.NextMatch ();
|
||||
+ } while (m.Success);
|
||||
+
|
||||
+ result.Append (input, ptr, input.Length - ptr);
|
||||
+
|
||||
+ return result.ToString ();
|
||||
+ }
|
||||
+
|
||||
+ internal static string RTLReplace (Regex regex, string input, MatchEvaluator evaluator, int count, int startat)
|
||||
+ {
|
||||
+ Match m = regex.Match (input, startat);
|
||||
+ if (!m.Success)
|
||||
+ return input;
|
||||
+
|
||||
+ int ptr = startat;
|
||||
+ int counter = count;
|
||||
+ StringCollection pieces = new StringCollection ();
|
||||
+ pieces.Add (input.Substring (ptr));
|
||||
+
|
||||
+ do {
|
||||
+ if (count != -1)
|
||||
+ if (counter-- <= 0)
|
||||
+ break;
|
||||
+ if (m.Index + m.Length > ptr)
|
||||
+ throw new SystemException ("how");
|
||||
+ pieces.Add (input.Substring (m.Index + m.Length, ptr - m.Index - m.Length));
|
||||
+ pieces.Add (evaluator (m));
|
||||
+
|
||||
+ ptr = m.Index;
|
||||
+ m = m.NextMatch ();
|
||||
+ } while (m.Success);
|
||||
+
|
||||
+ StringBuilder result = new StringBuilder ();
|
||||
+
|
||||
+ result.Append (input, 0, ptr);
|
||||
+ for (int i = pieces.Count; i > 0; )
|
||||
+ result.Append (pieces [--i]);
|
||||
+
|
||||
+ pieces.Clear ();
|
||||
+
|
||||
+ return result.ToString ();
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Messaging/MethodCall.cs b/mcs/class/corlib/System.Runtime.Remoting.Messaging/MethodCall.cs
|
||||
index 94069d1727e..042574178fa 100644
|
||||
--- a/mcs/class/corlib/System.Runtime.Remoting.Messaging/MethodCall.cs
|
||||
+++ b/mcs/class/corlib/System.Runtime.Remoting.Messaging/MethodCall.cs
|
||||
@@ -272,6 +272,10 @@ namespace System.Runtime.Remoting.Messaging {
|
||||
set { _uri = value; }
|
||||
}
|
||||
|
||||
+ string IMethodMessage.Uri {
|
||||
+ get { return Uri; }
|
||||
+ }
|
||||
+
|
||||
string IInternalMessage.Uri {
|
||||
get { return Uri; }
|
||||
set { Uri = value; }
|
||||
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Messaging/MethodResponse.cs b/mcs/class/corlib/System.Runtime.Remoting.Messaging/MethodResponse.cs
|
||||
index 1b1eab014b3..575e7e37dee 100644
|
||||
--- a/mcs/class/corlib/System.Runtime.Remoting.Messaging/MethodResponse.cs
|
||||
+++ b/mcs/class/corlib/System.Runtime.Remoting.Messaging/MethodResponse.cs
|
||||
@@ -272,6 +272,10 @@ namespace System.Runtime.Remoting.Messaging {
|
||||
}
|
||||
}
|
||||
|
||||
+ string IMethodMessage.Uri {
|
||||
+ get { return Uri; }
|
||||
+ }
|
||||
+
|
||||
string IInternalMessage.Uri {
|
||||
get { return Uri; }
|
||||
set { Uri = value; }
|
||||
diff --git a/mcs/class/corlib/System.Runtime.Remoting.Messaging/ReturnMessage.cs b/mcs/class/corlib/System.Runtime.Remoting.Messaging/ReturnMessage.cs
|
||||
index aee39f5bb81..ec09b73c15d 100644
|
||||
--- a/mcs/class/corlib/System.Runtime.Remoting.Messaging/ReturnMessage.cs
|
||||
+++ b/mcs/class/corlib/System.Runtime.Remoting.Messaging/ReturnMessage.cs
|
||||
@@ -166,6 +166,10 @@ namespace System.Runtime.Remoting.Messaging
|
||||
}
|
||||
}
|
||||
|
||||
+ string IMethodMessage.Uri {
|
||||
+ get { return Uri; }
|
||||
+ }
|
||||
+
|
||||
string IInternalMessage.Uri {
|
||||
get { return Uri; }
|
||||
set { Uri = value; }
|
||||
diff --git a/mcs/class/corlib/System/MulticastDelegate.cs b/mcs/class/corlib/System/MulticastDelegate.cs
|
||||
index b36aff33492..cf9134a33b3 100644
|
||||
--- a/mcs/class/corlib/System/MulticastDelegate.cs
|
||||
+++ b/mcs/class/corlib/System/MulticastDelegate.cs
|
||||
@@ -262,16 +262,16 @@ namespace System
|
||||
|
||||
public static bool operator == (MulticastDelegate a, MulticastDelegate b)
|
||||
{
|
||||
- if (a == null)
|
||||
- return b == null;
|
||||
+ if ((object)a == null)
|
||||
+ return (object)b == null;
|
||||
|
||||
return a.Equals (b);
|
||||
}
|
||||
|
||||
public static bool operator != (MulticastDelegate a, MulticastDelegate b)
|
||||
{
|
||||
- if (a == null)
|
||||
- return b != null;
|
||||
+ if ((object)a == null)
|
||||
+ return (object)b != null;
|
||||
|
||||
return !a.Equals (b);
|
||||
}
|
||||
diff --git a/mcs/class/corlib/System/Object.cs b/mcs/class/corlib/System/Object.cs
|
||||
index 6b0a03d2a31..694cbd454e1 100644
|
||||
--- a/mcs/class/corlib/System/Object.cs
|
||||
+++ b/mcs/class/corlib/System/Object.cs
|
||||
@@ -40,7 +40,7 @@ using System.Runtime.ConstrainedExecution;
|
||||
|
||||
namespace System {
|
||||
|
||||
- [Serializable]
|
||||
+ //[Serializable]
|
||||
[ClassInterface (ClassInterfaceType.AutoDual)]
|
||||
#if NET_2_0
|
||||
[ComVisible (true)]
|
||||
@@ -47,6 +47,12 @@
|
||||
#endif
|
||||
public class Object {
|
||||
|
||||
+ // Default definition of the object finalizer.
|
||||
+ #if NET_2_0
|
||||
+ [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
|
||||
+ #endif
|
||||
+ protected virtual void Finalize() {}
|
||||
+
|
||||
// <summary>
|
||||
// Compares this object to the specified object.
|
||||
// Returns true if they are equal, false otherwise.
|
||||
@@ -80,16 +86,6 @@ namespace System {
|
||||
{
|
||||
}
|
||||
|
||||
- // <summary>
|
||||
- // Object destructor.
|
||||
- // </summary>
|
||||
-#if NET_2_0
|
||||
- [ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.Success)]
|
||||
-#endif
|
||||
- ~Object ()
|
||||
- {
|
||||
- }
|
||||
-
|
||||
// <summary>
|
||||
// Returns a hashcode for this object. Each derived
|
||||
// class should return a hash code that makes sense
|
||||
diff --git a/mcs/mcs/codegen.cs b/mcs/mcs/codegen.cs
|
||||
index c94a61772f4..8546d671ec6 100644
|
||||
--- a/mcs/mcs/codegen.cs
|
||||
+++ b/mcs/mcs/codegen.cs
|
||||
@@ -498,7 +498,7 @@ namespace Mono.CSharp {
|
||||
|
||||
// utility helper for CheckExpr, UnCheckExpr, Checked and Unchecked statements
|
||||
// it's public so that we can use a struct at the callsite
|
||||
- public struct FlagsHandle : IDisposable
|
||||
+ public class FlagsHandle : IDisposable
|
||||
{
|
||||
EmitContext ec;
|
||||
readonly Flags invmask, oldval;
|
||||
diff --git a/mcs/mcs/typemanager.cs b/mcs/mcs/typemanager.cs
|
||||
index 1e173de89d2..58477af41a3 100644
|
||||
--- a/mcs/mcs/typemanager.cs
|
||||
+++ b/mcs/mcs/typemanager.cs
|
||||
@@ -629,18 +629,42 @@ namespace Mono.CSharp {
|
||||
return CSharpName (GetFullName (t));
|
||||
}
|
||||
|
||||
+ static bool StartsWithWord(string haystack, string check)
|
||||
+ {
|
||||
+ if(String.Compare(haystack, 0, check, 0, check.Length, false) != 0)
|
||||
+ { return false; }
|
||||
+ if(check.Length == haystack.Length) { return true; }
|
||||
+ char c = haystack[check.Length];
|
||||
+ return !(Char.IsLetter(c) || Char.IsDigit(c));
|
||||
+ }
|
||||
+
|
||||
public static string CSharpName (string name)
|
||||
{
|
||||
if (name.StartsWith (AnonymousTypeClass.ClassNamePrefix))
|
||||
return AnonymousTypeClass.SignatureForError;
|
||||
-
|
||||
- return Regex.Replace (name,
|
||||
- @"^System\." +
|
||||
- @"(Int32|UInt32|Int16|UInt16|Int64|UInt64|" +
|
||||
- @"Single|Double|Char|Decimal|Byte|SByte|Object|" +
|
||||
- @"Boolean|String|Void|Null)" +
|
||||
- @"(\W+|\b)",
|
||||
- new MatchEvaluator (CSharpNameMatch)).Replace ('+', '.');
|
||||
+
|
||||
+ int l = "System.".Length;
|
||||
+ if(name.StartsWith("System.") && name.Length > l)
|
||||
+ {
|
||||
+ string s2 = name.Substring(l).ToLower();
|
||||
+ if(StartsWithWord(s2, "int32"))
|
||||
+ return "int";
|
||||
+ if(StartsWithWord(s2, "uint32"))
|
||||
+ return "uint";
|
||||
+ if(StartsWithWord(s2, "int16"))
|
||||
+ return "short";
|
||||
+ if(StartsWithWord(s2, "uint16"))
|
||||
+ return "ushort";
|
||||
+ if(StartsWithWord(s2, "int64"))
|
||||
+ return "long";
|
||||
+ if(StartsWithWord(s2, "uint64"))
|
||||
+ return "ulong";
|
||||
+ if(StartsWithWord(s2, "single"))
|
||||
+ return "float";
|
||||
+ if(StartsWithWord(s2, "boolean"))
|
||||
+ return "bool";
|
||||
+ }
|
||||
+ return name;
|
||||
}
|
||||
|
||||
static public string CSharpName (Type[] types)
|
||||
@@ -654,21 +678,6 @@ namespace Mono.CSharp {
|
||||
return sb.ToString ();
|
||||
}
|
||||
|
||||
- static String CSharpNameMatch (Match match)
|
||||
- {
|
||||
- string s = match.Groups [1].Captures [0].Value;
|
||||
- return s.ToLower ().
|
||||
- Replace ("int32", "int").
|
||||
- Replace ("uint32", "uint").
|
||||
- Replace ("int16", "short").
|
||||
- Replace ("uint16", "ushort").
|
||||
- Replace ("int64", "long").
|
||||
- Replace ("uint64", "ulong").
|
||||
- Replace ("single", "float").
|
||||
- Replace ("boolean", "bool")
|
||||
- + match.Groups [2].Captures [0].Value;
|
||||
- }
|
||||
-
|
||||
// Used for error reporting to show symbolic name instead of underlying value
|
||||
public static string CSharpEnumValue (Type t, object value)
|
||||
{
|
||||
diff --git a/mono/io-layer/processes.c b/mono/io-layer/processes.c
|
||||
index cd6176cdda2..486087d3a1b 100644
|
||||
--- a/mono/io-layer/processes.c
|
||||
+++ b/mono/io-layer/processes.c
|
||||
@@ -15,6 +15,7 @@
|
||||
#include <sys/time.h>
|
||||
#include <errno.h>
|
||||
#include <sys/types.h>
|
||||
+#include <sys/sysmacros.h>
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
#include <sys/wait.h>
|
||||
diff --git a/mono/metadata/Makefile.am b/mono/metadata/Makefile.am
|
||||
index 6ff2368895b..b8ba66e8756 100644
|
||||
--- a/mono/metadata/Makefile.am
|
||||
+++ b/mono/metadata/Makefile.am
|
||||
@@ -154,7 +154,6 @@ libmonoruntimeinclude_HEADERS = \
|
||||
object.h \
|
||||
exception.h \
|
||||
profiler.h \
|
||||
- appdomain.h \
|
||||
mono-config.h \
|
||||
debug-helpers.h \
|
||||
mempool.h
|
||||
diff --git a/mono/metadata/class.c b/mono/metadata/class.c
|
||||
index f13f37632fe..128710337f4 100644
|
||||
--- a/mono/metadata/class.c
|
||||
+++ b/mono/metadata/class.c
|
||||
@@ -2695,10 +2695,10 @@ initialize_object_slots (MonoClass *class)
|
||||
finalize_slot = i;
|
||||
}
|
||||
|
||||
- g_assert (ghc_slot > 0);
|
||||
+ g_assert (ghc_slot >= 0);
|
||||
default_ghc = class->vtable [ghc_slot];
|
||||
|
||||
- g_assert (finalize_slot > 0);
|
||||
+ g_assert (finalize_slot >= 0);
|
||||
default_finalize = class->vtable [finalize_slot];
|
||||
}
|
||||
}
|
||||
diff --git a/mono/metadata/object.c b/mono/metadata/object.c
|
||||
index 2b6f4909b34..ef4c8fd8b44 100644
|
||||
--- a/mono/metadata/object.c
|
||||
+++ b/mono/metadata/object.c
|
||||
@@ -861,7 +861,7 @@ mono_class_compute_gc_descriptor (MonoClass *class)
|
||||
mono_register_jit_icall (GC_local_gcj_fast_malloc, "GC_local_gcj_fast_malloc", mono_create_icall_signature ("object int ptr"), FALSE);
|
||||
#endif
|
||||
mono_register_jit_icall (GC_gcj_malloc, "GC_gcj_malloc", mono_create_icall_signature ("object int ptr"), FALSE);
|
||||
- mono_register_jit_icall (GC_gcj_fast_malloc, "GC_gcj_fast_malloc", mono_create_icall_signature ("object int ptr"), FALSE);
|
||||
+ mono_register_jit_icall (GC_gcj_malloc, "GC_gcj_fast_malloc", mono_create_icall_signature ("object int ptr"), FALSE);
|
||||
#endif
|
||||
gcj_inited = TRUE;
|
||||
mono_loader_unlock ();
|
||||
diff --git a/runtime/Makefile.am b/runtime/Makefile.am
|
||||
index 779787b3ce3..b67957dcf16 100644
|
||||
--- a/runtime/Makefile.am
|
||||
+++ b/runtime/Makefile.am
|
||||
@@ -1,6 +1,3 @@
|
||||
-# hack to prevent 'check' from depending on 'all'
|
||||
-AUTOMAKE_OPTIONS = cygnus
|
||||
-
|
||||
tmpinst = _tmpinst
|
||||
|
||||
noinst_SCRIPTS = mono-wrapper monodis-wrapper semdel-wrapper
|
Loading…
Reference in a new issue