[oe-commits] Khem Raj : mono: Replace cross compilation workaround for x86 architecture.

git version control git at git.openembedded.org
Mon Nov 9 21:17:47 UTC 2009


Module: openembedded.git
Branch: org.openembedded.dev
Commit: 189fc6375fd364b98b4a9530f547984e159dd838
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=189fc6375fd364b98b4a9530f547984e159dd838

Author: Khem Raj <raj.khem at gmail.com>
Date:   Wed Nov  4 16:07:17 2009 -0800

mono: Replace cross compilation workaround for x86 architecture.

* Replace the workaround with backported patches from mono 2.4 branch

Signed-off-by: Khem Raj <raj.khem at gmail.com>

---

 .../mono-cross-compilation-for-amd64.patch         |  167 ++++++++++++++++++--
 recipes/mono/mono_2.4.2.3.bb                       |    2 +-
 2 files changed, 156 insertions(+), 13 deletions(-)

diff --git a/recipes/mono/mono-2.4.2.3/mono-cross-compilation-for-amd64.patch b/recipes/mono/mono-2.4.2.3/mono-cross-compilation-for-amd64.patch
index e8d91da..3cf5473 100644
--- a/recipes/mono/mono-2.4.2.3/mono-cross-compilation-for-amd64.patch
+++ b/recipes/mono/mono-2.4.2.3/mono-cross-compilation-for-amd64.patch
@@ -1,23 +1,166 @@
-This is a workaround for bug 515050
 https://bugzilla.novell.com/show_bug.cgi?id=515050#c2
 
-Real fix is something else which did not make into 2.4.2
+Backport following fixes from mono-2-4 branch
 http://lists.ximian.com/pipermail/mono-patches/2009-June/151386.html
 http://lists.ximian.com/pipermail/mono-patches/2009-June/151387.html
 
-but we are ok with workaround its safe.
-
 -Khem
 Index: mono-2.4.2.3/mono/mini/genmdesc.pl
 ===================================================================
---- mono-2.4.2.3.orig/mono/mini/genmdesc.pl	2009-10-15 18:21:45.000000000 -0700
-+++ mono-2.4.2.3/mono/mini/genmdesc.pl	2009-10-15 18:22:19.000000000 -0700
-@@ -47,7 +47,7 @@ sub load_opcodes
- 		$arch_define = "TARGET_ARM";
- 	}
- 		
--	$cpp .= " -D$arch_define $srcdir/mini-ops.h|";
-+	$cpp .= " -DMONO_ARCH_SUPPORT_SIMD_INTRINSICS -D$arch_define $srcdir/mini-ops.h|";
+--- mono-2.4.2.3.orig/mono/mini/genmdesc.pl	2009-11-04 15:36:19.000000000 -0800
++++ mono-2.4.2.3/mono/mini/genmdesc.pl	2009-11-04 15:36:27.000000000 -0800
+@@ -51,7 +51,7 @@ sub load_opcodes
  	#print "Running: $cpp\n";
  	open (OPS, $cpp) || die "Cannot execute cpp: $!";
  	while (<OPS>) {
+-		next unless /MINI_OP\s*\(\s*(\S+?)\s*,\s*"(.*?)"/;
++		next unless /MINI_OP3?\s*\(\s*(\S+?)\s*,\s*"(.*?)"/;
+ 		my ($sym, $name) = ($1, $2);
+ 		push @opcodes, [$sym, $name];
+ 		$table{$name} = {num => $i, name => $name};
+@@ -159,16 +159,19 @@ sub build_table {
+ }
+ 
+ sub usage {
+-	die "genmdesc.pl arch srcdir desc output name\n";
++	die "genmdesc.pl arch srcdir output name desc [desc2 ...]\n";
+ }
+ 
+ my $arch = shift || usage ();
+ my $srcdir = shift || usage ();
+-my $file = shift || usage ();
+ my $output = shift || usage ();
+ my $name = shift || usage ();
++usage () unless @ARGV;
++my @files = @ARGV;
+ 
+ load_opcodes ($srcdir, $arch);
+-load_file ($file);
++foreach my $file (@files) {
++	load_file ($file);
++}
+ build_table ($output, $name);
+ 
+Index: mono-2.4.2.3/mono/mini/Makefile.am
+===================================================================
+--- mono-2.4.2.3.orig/mono/mini/Makefile.am	2009-11-04 15:30:20.000000000 -0800
++++ mono-2.4.2.3/mono/mini/Makefile.am	2009-11-04 15:36:27.000000000 -0800
+@@ -422,40 +422,40 @@ GENMDESC_PRG=./genmdesc
+ endif !CROSS_COMPILING
+ 
+ cpu-x86.h: cpu-x86.md genmdesc$(EXEEXT)
+-	$(GENMDESC_PRG) $(srcdir)/cpu-x86.md cpu-x86.h x86_desc
++	$(GENMDESC_PRG) cpu-x86.h x86_desc $(srcdir)/cpu-x86.md
+ 
+ cpu-amd64.h: cpu-amd64.md genmdesc$(EXEEXT)
+-	$(GENMDESC_PRG) $(srcdir)/cpu-amd64.md cpu-amd64.h amd64_desc
++	$(GENMDESC_PRG) cpu-amd64.h amd64_desc $(srcdir)/cpu-amd64.md
+ 
+ cpu-ppc.h: cpu-ppc.md genmdesc$(EXEEXT)
+-	$(GENMDESC_PRG) $(srcdir)/cpu-ppc.md cpu-ppc.h ppcg4
++	$(GENMDESC_PRG) cpu-ppc.h ppcg4 $(srcdir)/cpu-ppc.md
+ 
+ cpu-ppc64.h: cpu-ppc64.md genmdesc$(EXEEXT)
+-	$(GENMDESC_PRG) $(srcdir)/cpu-ppc64.md cpu-ppc64.h ppc64_cpu_desc
++	$(GENMDESC_PRG) cpu-ppc64.h ppc64_cpu_desc $(srcdir)/cpu-ppc64.md
+ 
+ cpu-arm.h: cpu-arm.md genmdesc$(EXEEXT)
+-	$(GENMDESC_PRG) $(srcdir)/cpu-arm.md cpu-arm.h arm_cpu_desc
++	$(GENMDESC_PRG) cpu-arm.h arm_cpu_desc $(srcdir)/cpu-arm.md
+ 
+ cpu-sparc.h: cpu-sparc.md genmdesc$(EXEEXT)
+-	$(GENMDESC_PRG) $(srcdir)/cpu-sparc.md cpu-sparc.h sparc_desc
++	$(GENMDESC_PRG) cpu-sparc.h sparc_desc $(srcdir)/cpu-sparc.md
+ 
+ cpu-s390.h: cpu-s390.md genmdesc$(EXEEXT)
+-	$(GENMDESC_PRG) $(srcdir)/cpu-s390.md cpu-s390.h s390_cpu_desc
++	$(GENMDESC_PRG) cpu-s390.h s390_cpu_desc $(srcdir)/cpu-s390.md
+ 
+ cpu-s390x.h: cpu-s390x.md genmdesc$(EXEEXT)
+-	$(GENMDESC_PRG) $(srcdir)/cpu-s390x.md cpu-s390x.h s390x_cpu_desc
++	$(GENMDESC_PRG) cpu-s390x.h s390x_cpu_desc $(srcdir)/cpu-s390x.md
+ 
+ cpu-ia64.h: cpu-ia64.md genmdesc$(EXEEXT)
+-	$(GENMDESC_PRG) $(srcdir)/cpu-ia64.md cpu-ia64.h ia64_desc
++	$(GENMDESC_PRG) cpu-ia64.h ia64_desc $(srcdir)/cpu-ia64.md
+ 
+ cpu-alpha.h: cpu-alpha.md genmdesc$(EXEEXT)
+-	$(GENMDESC_PRG) $(srcdir)/cpu-alpha.md cpu-alpha.h alpha_desc
++	$(GENMDESC_PRG) cpu-alpha.h alpha_desc $(srcdir)/cpu-alpha.md
+ 
+ cpu-hppa.h: cpu-hppa.md genmdesc$(EXEEXT)
+-	$(GENMDESC_PRG) $(srcdir)/cpu-hppa.md cpu-hppa.h hppa_desc
++	$(GENMDESC_PRG) cpu-hppa.h hppa_desc $(srcdir)/cpu-hppa.md
+ 
+ cpu-mips.h: cpu-mips.md genmdesc$(EXEEXT)
+-	$(GENMDESC_PRG) $(srcdir)/cpu-mips.md cpu-mips.h mips_desc
++	$(GENMDESC_PRG) cpu-mips.h mips_desc $(srcdir)/cpu-mips.md
+ 
+ testi: mono test.exe
+ 	$(RUNTIME) -v -v --ncompile 1 --compile Test:$(mtest) test.exe
+Index: mono-2.4.2.3/mono/mini/genmdesc.c
+===================================================================
+--- mono-2.4.2.3.orig/mono/mini/genmdesc.c	2009-11-04 15:35:34.000000000 -0800
++++ mono-2.4.2.3/mono/mini/genmdesc.c	2009-11-04 15:36:27.000000000 -0800
+@@ -211,21 +211,20 @@ int 
+ main (int argc, char* argv [])
+ {
+ 	init_table ();
+-	switch (argc) {
+-	case 2:
++	if (argc == 2) {
+ 		/* useful to get a new file when some opcodes are added: looses the comments, though */
+ 		load_file (argv [1]);
+ 		dump ();
+-		break;
+-	case 4:
+-		load_file (argv [1]);
+-		build_table (argv [2], argv [3]);
+-		break;
+-	default:
++	} else if (argc < 4) {
+ 		g_print ("Usage: genmdesc arguments\n");
+-		g_print ("\tgenmdesc desc             Output to stdout the description file.\n");
+-		g_print ("\tgenmdesc desc output name Write to output the description in a table named 'name'.\n");
++		g_print ("\tgenmdesc desc                        Output to stdout the description file.\n");
++		g_print ("\tgenmdesc output name desc [desc1...] Write to output the description in a table named 'name'.\n");
+ 		return 1;
++	} else {
++		int i;
++		for (i = 3; i < argc; ++i)
++			load_file (argv [i]);
++		build_table (argv [1], argv [2]);
+ 	}
+ 	return 0;
+ }
+Index: mono-2.4.2.3/mono/mini/mini-ops.h
+===================================================================
+--- mono-2.4.2.3.orig/mono/mini/mini-ops.h	2009-11-04 15:35:34.000000000 -0800
++++ mono-2.4.2.3/mono/mini/mini-ops.h	2009-11-04 15:38:37.000000000 -0800
+@@ -72,7 +72,7 @@ MINI_OP(OP_STOREI8_MEMBASE_REG, "storei8
+ MINI_OP(OP_STORER4_MEMBASE_REG, "storer4_membase_reg", IREG, FREG, NONE)
+ MINI_OP(OP_STORER8_MEMBASE_REG, "storer8_membase_reg", IREG, FREG, NONE)
+ 
+-#ifdef MONO_ARCH_SUPPORT_SIMD_INTRINSICS
++#if defined(TARGET_X86) || defined(TARGET_AMD64)
+ MINI_OP(OP_STOREX_MEMBASE_REG, "storex_membase_reg", IREG, XREG, NONE)
+ MINI_OP(OP_STOREX_ALIGNED_MEMBASE_REG,     "storex_aligned_membase_reg", IREG, XREG, NONE)
+ MINI_OP(OP_STOREX_NTA_MEMBASE_REG,     "storex_nta_membase_reg", IREG, XREG, NONE)
+@@ -100,7 +100,7 @@ MINI_OP(OP_LOADR8_MEMBASE,"loadr8_membas
+ 
+ MINI_OP(OP_LOADX_MEMBASE, 			"loadx_membase", XREG, IREG, NONE)
+ 
+-#ifdef MONO_ARCH_SUPPORT_SIMD_INTRINSICS
++#if defined(TARGET_X86) || defined(TARGET_AMD64)
+ MINI_OP(OP_LOADX_ALIGNED_MEMBASE,  "loadx_aligned_membase", XREG, IREG, NONE)
+ #endif
+ 
+@@ -578,7 +578,7 @@ MINI_OP(OP_NOT_NULL, "not_null", NONE, I
+ 
+ /* SIMD opcodes. */
+ 
+-#ifdef MONO_ARCH_SUPPORT_SIMD_INTRINSICS
++#if defined(TARGET_X86) || defined(TARGET_AMD64)
+ 
+ MINI_OP(OP_ADDPS, "addps", XREG, XREG, XREG)
+ MINI_OP(OP_DIVPS, "divps", XREG, XREG, XREG)
diff --git a/recipes/mono/mono_2.4.2.3.bb b/recipes/mono/mono_2.4.2.3.bb
index 5e659f3..c6e3665 100644
--- a/recipes/mono/mono_2.4.2.3.bb
+++ b/recipes/mono/mono_2.4.2.3.bb
@@ -2,7 +2,7 @@ require mono-${PV}.inc
 
 DEPENDS = "mono-native mono-mcs-intermediate glib-2.0 perl-native"
 
-PR = "${INC_PR}.1"
+PR = "${INC_PR}.2"
 
 # mono makes use of non-thumb-compatible inline asm.
 ARM_INSTRUCTION_SET = "arm"





More information about the Openembedded-commits mailing list