[Mono-dev] Cross-compile mono to MIPS SOC w/CodeSourcery 3.93?

Autif Khan autif.mlist at gmail.com
Wed Mar 28 23:21:59 UTC 2012


>> Hello---
>>
>> I'm trying to cross-compile mono 2.10.2 from the source tarball.  My build
>> machine is an x86 Linux PC running Fedora (could use one of the other
>> distros of that makes things easier).  The target is a SOC with a vanilla
>> MIPS 24Kc core (little-endian, no FPU).
>>
>> I found some instructions for ARM (http://mono-project.com/Mono%3aARM &
>> http://stackoverflow.com/questions/4955314/cross-compile-mono-for-arm) which
>> I tried to adapt for MIPS, but have come up short.  I'll spare the error
>> messages, but it dies in ./configure.  I believe the root cause is not
>> setting the right combination of environment variables for confogure to
>> properly use the CodeSourcery 3.93 toolchain.
>>
>> Specifically, I don't see (from looking at the output of ./configure --help)
>> how to override the default x86 headers and libraries, which would be needed
>> in addition to the compiler, linker, etc.  Does anyone have more detailed
>> instructions on how I might accomplish this?  I am not a newbie, but am
>> somewhat new to cross-compiling.  The tutorial information I've been able to
>> find on automake, etc, is very general.
>>
>> If I get enough hints to pull this off I'll be happy to write up a detailed
>> Wiki by way of compensation.
>>
>> Thx in advance---
>>
>> Maadmole
>> ================
>>
>> _prefix=mips-linux-gnu
>> export CC=$CSRC_ROOT/${_prefix}-gcc
>> export CXX=$CSRC_ROOT/${_prefix}-g++
>> export CPP=$CSRC_ROOT/${_prefix}-cpp
>>
>> ./configure --prefix=/usr/local --disable-mcs-build --host=mipsel
>> --enable-minimal=profiler,debug,logging,soft_debug --without-mcs-docs
>> --disable-mono-debugger
>>
>
> See of the following config options work for you.
>
> I use them for my embedded mono (x86 and arm)
>
> --disable-mcs-build mono_cv_uscore=no --with-tls=pthread
> --with-sigaltstack=no --with-mcs-docs=no

Oh, I also had to apply a few patches - they are included below. The
last one will not be required for 2.10.11

--- mono-2.10.8.1.orig/Makefile.am	2012-01-25 14:24:43.564002232 -0500
+++ mono-2.10.8.1/Makefile.am	2012-01-25 14:25:02.036002218 -0500
@@ -4,10 +4,10 @@
 MOONLIGHT_SUBDIRS = $(libgc_dir) eglib/src mono

 if CROSS_COMPILING
-SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) data runtime
scripts man samples msvc $(docs_dir)
+SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) support data
runtime scripts man samples msvc $(docs_dir)
 # Keep in sync with SUBDIRS
 ## 'tools' is not normally built
-DIST_SUBDIRS = po libgc eglib mono ikvm-native         data runtime
scripts man samples tools msvc docs
+DIST_SUBDIRS = po libgc eglib mono ikvm-native support data runtime
scripts man samples tools msvc docs
 else
 if ONLY_MOONLIGHT
 SUBDIRS = $(MOONLIGHT_SUBDIRS) runtime

--- mono-2.10.8.1.orig/data/config.in	2012-01-27 09:29:07.072001924 -0500
+++ mono-2.10.8.1/data/config.in	2012-01-27 09:30:59.740001933 -0500
@@ -15,7 +15,7 @@
 	<dllmap dll="i:msvcrt.dll" target="@LIBC@" os="!windows"/>
 	<dllmap dll="sqlite" target="@SQLITE@" os="!windows"/>
 	<dllmap dll="sqlite3" target="@SQLITE3@" os="!windows"/>
-	<dllmap dll="libX11" target="@X11@" os="!windows" />
+	<dllmap dll="libX11" target="libX11.so.6" os="!windows" />
 	<dllmap dll="libcairo-2.dll" target="libcairo.so.2" os="!windows"/>
 	<dllmap dll="libcairo-2.dll" target="libcairo.2.dylib" os="osx"/>
 	<dllmap dll="libcups" target="libcups.so.2" os="!windows"/>

--- mono-2.10.8.1.orig/mcs/class/Makefile	2012-01-27 16:20:36.319297999 -0500
+++ mono-2.10.8.1/mcs/class/Makefile	2012-01-27 20:37:30.867593825 -0500
@@ -55,10 +55,8 @@
 	Novell.Directory.Ldap		\
 	Mono.Security.Win32		\
 	System.DirectoryServices	\
-	RabbitMQ.Client			\
 	Mono.Messaging			\
 	System.Messaging	        \
-	Mono.Messaging.RabbitMQ		\
 	System.ServiceProcess           \
 	System.Drawing.Design		\
 	System.Design			\


More information about the Mono-devel-list mailing list