Imported Upstream version 3.12.1

Former-commit-id: ce565ca85f5d5abe367a12026a5712944dbf6319
This commit is contained in:
Jo Shields
2015-03-06 18:47:20 +00:00
parent 181b81b4a4
commit 283343f570
73 changed files with 244 additions and 13424 deletions

View File

@@ -191,8 +191,6 @@ buildver-boehm.h: libmini-static.la $(monodir)/mono/metadata/libmonoruntime-stat
endif
@echo "const char *build_date = \"`date`\";" > buildver-boehm.h
mono_boehm-main.$(OBJEXT): buildver-boehm.h
main.c: buildver-boehm.h
endif
if DISABLE_EXECUTABLES
@@ -202,8 +200,7 @@ buildver-sgen.h: libmini-static.la $(monodir)/mono/metadata/libmonoruntimesgen-s
endif
@echo "const char *build_date = \"`date`\";" > buildver-sgen.h
mono_sgen-main-sgen.$(OBJEXT): buildver-sgen.h
main-sgen.c: buildver-sgen.h
main-sgen.$(OBJEXT): buildver-sgen.h
if DTRACE_G_REQUIRED
LIBMONO_DTRACE_OBJECT = .libs/mono-dtrace.$(OBJEXT)

View File

@@ -191,8 +191,6 @@ buildver-boehm.h: libmini-static.la $(monodir)/mono/metadata/libmonoruntime-stat
endif
@echo "const char *build_date = \"`date`\";" > buildver-boehm.h
mono_boehm-main.$(OBJEXT): buildver-boehm.h
main.c: buildver-boehm.h
endif
if DISABLE_EXECUTABLES
@@ -202,8 +200,7 @@ buildver-sgen.h: libmini-static.la $(monodir)/mono/metadata/libmonoruntimesgen-s
endif
@echo "const char *build_date = \"`date`\";" > buildver-sgen.h
mono_sgen-main-sgen.$(OBJEXT): buildver-sgen.h
main-sgen.c: buildver-sgen.h
main-sgen.$(OBJEXT): buildver-sgen.h
if DTRACE_G_REQUIRED
LIBMONO_DTRACE_OBJECT = .libs/mono-dtrace.$(OBJEXT)

View File

@@ -1 +1 @@
4a25b5dd42ff9776e3727b7cacb27601db947e95
b6614235762bfb38ac43003a4babfb3bb6654de7

View File

@@ -324,7 +324,7 @@ long_conv_to_ovf_i4_2: dest:i src1:i src2:i len:36
vcall2: len:40 clob:c
vcall2_reg: src1:i len:40 clob:c
vcall2_membase: src1:b len:40 clob:c
dyn_call: src1:i src2:i len:120 clob:c
dyn_call: src1:i src2:i len:192 clob:c
# This is different from the original JIT opcodes
float_beq: len:32

View File

@@ -1119,6 +1119,27 @@ class Tests
return 0;
}
}
struct FooStruct2 {
public int a1, a2, a3;
}
class MyClass<T> where T: struct {
[MethodImplAttribute (MethodImplOptions.NoInlining)]
public MyClass(int a1, int a2, int a3, int a4, int a5, int a6, Nullable<T> a) {
}
[MethodImplAttribute (MethodImplOptions.NoInlining)]
public static MyClass<T> foo () {
Nullable<T> a = new Nullable<T> ();
return new MyClass<T> (0, 0, 0, 0, 0, 0, a);
}
}
public static int test_0_newobj_generic_context () {
MyClass<FooStruct2>.foo ();
return 0;
}
}
#if !MOBILE

View File

@@ -1 +1 @@
783208d12240464610ce0690d42ee4beb31d48e0
47f1268a06d15b9838430eefa9f72e93ee34ad1d

View File

@@ -1 +1 @@
97f9bfa375eeac9d3590c30ff2fa078194efa4c7
d7ee5ba2671056ca7516f7bf4b3a62563cbfe8be

View File

@@ -1 +1 @@
#define FULL_VERSION "(detached/a813491"
#define FULL_VERSION "mono-3.12.0-branch/4cb3f77"

View File

@@ -20,6 +20,7 @@
#endif
#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
#include <sys/errno.h>
#include <sys/param.h>
#include <sys/types.h>
#include <sys/sysctl.h>
@@ -61,17 +62,19 @@ mono_process_list (int *size)
struct kinfo_proc2 *processes = malloc (data_len);
#else
int mib [4];
size_t data_len = sizeof (struct kinfo_proc) * 400;
struct kinfo_proc *processes = malloc (data_len);
size_t data_len = sizeof (struct kinfo_proc) * 16;
struct kinfo_proc *processes;
int limit = 8;
#endif /* KERN_PROC2 */
void **buf = NULL;
if (size)
*size = 0;
#ifdef KERN_PROC2
if (!processes)
return NULL;
#ifdef KERN_PROC2
mib [0] = CTL_KERN;
mib [1] = KERN_PROC2;
mib [2] = KERN_PROC_ALL;
@@ -80,19 +83,34 @@ mono_process_list (int *size)
mib [5] = 400; /* XXX */
res = sysctl (mib, 6, processes, &data_len, NULL, 0);
#else
mib [0] = CTL_KERN;
mib [1] = KERN_PROC;
mib [2] = KERN_PROC_ALL;
mib [3] = 0;
res = sysctl (mib, 4, processes, &data_len, NULL, 0);
#endif /* KERN_PROC2 */
if (res < 0) {
free (processes);
return NULL;
}
#else
processes = NULL;
while (limit) {
mib [0] = CTL_KERN;
mib [1] = KERN_PROC;
mib [2] = KERN_PROC_ALL;
mib [3] = 0;
res = sysctl (mib, 4, NULL, &data_len, NULL, 0);
if (res)
return NULL;
processes = malloc (data_len);
res = sysctl (mib, 4, NULL, &data_len, NULL, 0);
if (res < 0) {
free (processes);
if (errno != ENOMEM)
return NULL;
limit --;
} else {
break;
}
}
#endif /* KERN_PROC2 */
#ifdef KERN_PROC2
res = data_len/sizeof (struct kinfo_proc2);
#else