针对MIPS的交叉编译Mono框架3.0.6+

问题描述:

我正在为MIPS平台交叉编译Mono框架(3.0.6)。我找到的问题很少,所以我想问问社区是否有知道。针对MIPS的交叉编译Mono框架3.0.6+

我的环境:Linux的3.2.0-39泛型#62-Ubuntu的SMP周四年02月28○时二十八分53秒UTC 2013 x86_64的x86_64的x86_64的GNU/Linux的

工具链:的Sourcery G ++精简版4.3 -51

命令行

./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" && make

问题#1 : 当我设法它来配置,编译停止并出现以下错误:

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

mini-gc.c:2518: error: previous definition of 'mini_gc_enable_gc_maps_for_aot' was here

问题#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的文章/信息(至少有一些最新信息)。根据this的链接,大约一年前增加了对MIPS的支持。自从3.0.4 version以来,Mono本身应该完全支持MIPS。

我张贴的其他人谁都会有同样问题的(建设单为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=-EL CPPFLAGS="-mips32r2 -EL" ASFLAGS=-EL CC="mips-linux-gnu-gcc -EL"

指定所有使用ld进行单声道链接的固定问题的-EL标志(请参阅我的初始文章中的问题#2)。

剩下的最后一个问题是使单声道生成系统生成mscorlib.dll。调用不同的使命令在mcs/class文件夹中没有做任何事情。

+0

谢谢!我只是遇到了同样的问题,它有帮助! – inbaly 2014-11-10 07:58:33