交叉编译Mono框架3.0.6+的MIPS



我正在尝试为MIPS平台交叉编译Mono框架(3.0.6)。我发现的问题很少,所以我想问一下社区是否有已知的。

我的环境: Linux 3.2.0-39-generic #62-Ubuntu SMP Thu Feb 28 00:28:53 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

工具链: Sourcery g++ Lite -51

4.3

命令行:

。/configure——prefix=/home/dev/mono-3.0.6-mips——host=mips-linux-gnu——enable-minimal=profiler,debug,logging,soft_debug——without-mcs-docs——target=mips-linux-gnu——with-moonlight=no——with-tls=pthread——with-sigaltstack=no——with-profile4_5=yes CXXFLAGS="-mips32r2 -march=24kf -mtune=24kf -EL"CFLAGS="-mips32r2 -march=24kf -mtune=24kf - el;,,使

问题# 1 :当我管理它配置时,编译停止并出现以下错误:

mini-gc.c:2551: error: redefinition 'mini_gc_enable_gc_maps_for_aot'

mini-gc.c:2518:错误:先前定义的'mini_gc_enable_gc_maps_for_aot'在这里

问题# 2 :在我注释掉mini_gc_enable_gc_maps_for_aot的第二个声明后,它编译了,但看起来像Sourcery g++链接器崩溃了:

/home/dev/mips - 4.3/bin/. ./lib/gcc/mips-linux-gnu/4.3.2/../../../../mips-linux-gnu/bin/ld: BFD (Sourcery g+ + Lite 4.3-51) 2.18.50.20080215 assertion fail/scratch/clm/2008q3-lite/obj/binutils-src-4.3-51-mips-linux-gnu-i686-pc-linux-gnu/BFD/elfxx-mips.c:2651

有谁能给这个问题一些启示吗?我没有找到任何描述为MIPS架构构建Mono的文章/信息(至少是一些最近的信息)。根据这个链接,对MIPS的支持大约是在一年前添加的。从3.0.4版本开始,Mono应该完全支持MIPS。

我发布这个信息给所有其他谁将与同样的问题(构建Mono MIPS平台)斗争:

最后,我能够使用以下命令行为MIPS平台构建单运行时:

。/configure——prefix=/home/dev/mono-3.0.6-mips——host=mips-linux-gnu——enable-minimal=profiler,debug,logging,soft_debug——without-mcs-docs——target=mips-linux-gnu——with-moonlight=no——with-tls=pthread——with-sigaltstack=no——with-profile4_5=yes CXXFLAGS="-mips32r2 -EL" CFLAGS="-mips32r2 -EL" LDFLAGS= "-mips32r2 -EL" CPPFLAGS="-mips32r2 -EL" ASFLAGS=-EL CC="mips-linux-gnu-gcc -EL"

为所有工具指定-EL标志,修复了使用ld进行单链接的问题(参见我最初的帖子中的问题#2)。

剩下的最后一个问题是使单构建系统构建mscorlib.dll。在mcs/class文件夹中调用不同的make命令不会做任何事情。

最新更新