Synopsis
========

mono-native builds fine with an Ubuntu 12.04 LTS host system, with or without 
mono installed from precise pangolin (i.e. Mono v2.x series).

If mono is upgraded to v3.x series using, say, ppa:directhex/monoxide then the 
build fails

@see 
http://stackoverflow.com/questions/13365158/installing-mono-3-x-3-0-x-and-or-3-2-x

Build messages includes a warning

../corlib/Mono/DataConverter.cs(759,25): warning CS0436: The type 
`Mono.DataConverter' conflicts with the imported type of same name'.
Ignoring the imported type definition
../../build/common/MonoTODOAttribute.cs(38,17): (Location of the symbol related 
to previous warning)
/usr/lib/mono/4.5/mscorlib.dll (Location of the symbol related to previous 
warning)

Then an error

MCS     [build] mscorlib.dll
Unhandled Exception:
System.TypeLoadException: Could not load type 'Mono.CSharp.CommandLineParser' 
from assembly 'basic, Version=3.2.8.0, Culture=neutral, PublicKeyToken=null'.
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load 
type 'Mono.CSharp.CommandLineParser' from assembly 'basic, Version=3.2.8.0, 
Culture=neutral, PublicKeyToken=null'.
make[8]: *** [../../class/lib/build/tmp/mscorlib.dll] Error 1

This appears related to Mono building its 'basic' profile. The makefile for 
this profile appears not to correctly set the path to the correct mscorlib.dll 
which this patch attempts to fix.

Testing
=======

With this patch in place a build of a qemux86 image succeeds with Mono 3.2.8 on 
the
host and the mono-helloworld recipe files can be executed successfully

Signed-off-by: Alex J Lennon <[email protected]>
---
 .../mono/mono-3.2.8/fix-basic-mscorlib-dep.patch   |   11 +++++++++++
 recipes-mono/mono/mono-native_3.2.8.bb             |    5 +++--
 2 files changed, 14 insertions(+), 2 deletions(-)
 create mode 100644 recipes-mono/mono/mono-3.2.8/fix-basic-mscorlib-dep.patch

diff --git a/recipes-mono/mono/mono-3.2.8/fix-basic-mscorlib-dep.patch 
b/recipes-mono/mono/mono-3.2.8/fix-basic-mscorlib-dep.patch
new file mode 100644
index 0000000..5759a86
--- /dev/null
+++ b/recipes-mono/mono/mono-3.2.8/fix-basic-mscorlib-dep.patch
@@ -0,0 +1,11 @@
+--- 3.2.8-r0/mcs/build/profiles/basic.make.org 2014-03-01 17:51:52.904670729 
+0000
++++ 3.2.8-r0/mcs/build/profiles/basic.make     2014-03-01 17:46:50.476669939 
+0000
+@@ -12,7 +12,7 @@
+ PROFILE_RUNTIME = $(with_mono_path_monolite) $(RUNTIME)
+ BOOTSTRAP_MCS = $(PROFILE_RUNTIME) $(RUNTIME_FLAGS) $(MONOLITE_MCS) -sdk:2
+ else
+-PROFILE_RUNTIME = $(EXTERNAL_RUNTIME)
++PROFILE_RUNTIME = ${with_mono_path) $(EXTERNAL_RUNTIME)
+ BOOTSTRAP_MCS = $(EXTERNAL_MCS)
+ endif
+ 
diff --git a/recipes-mono/mono/mono-native_3.2.8.bb 
b/recipes-mono/mono/mono-native_3.2.8.bb
index 93decd6..6ad4b04 100644
--- a/recipes-mono/mono/mono-native_3.2.8.bb
+++ b/recipes-mono/mono/mono-native_3.2.8.bb
@@ -4,11 +4,12 @@ inherit native
 
 EXTRA_OECONF += "mono_cv_uscore=no --with-sigaltstack=no --with-mcs-docs=no"
 
+SRC_URI += "file://fix-basic-mscorlib-dep.patch"
+
 do_configure_prepend() {
     ${S}/autogen.sh --verbose || bbnote "mono-native failed to autogen.sh"
 }
 
 do_compile() {
-    make get-monolite-latest
-    make EXTERNAL_MCS="${S}/mcs/class/lib/monolite/basic.exe"
+    make EXTERNAL_MCS="${S}/mcs/class/lib/monolite/basic.exe" 
 }
-- 
1.7.9.5

_______________________________________________
yocto mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to