为MIPS交叉编译Mono framework 3.0.6+

时间:2013-03-25 12:07:17

标签: mono mips cross-compiling

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

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

工具链:Sourcery G ++ Lite 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“&&使

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

  

mini-gc.c:2551:错误:重新定义'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断言失败/scratch/clm/2008q3-lite/obj/binutils-src-4.3-51-mips-linux-gnu-i686-pc-linux-gnu/ BFD / elfxx-mips.c:2651

有人能解决这个问题吗?我没有找到任何描述为MIPS架构构建Mono的文章/信息(至少是一些最近的信息)。根据{{​​3}}链接,大约一年前增加了对MIPS的支持。 Mono本身应该完全支持MIPS,因为this

1 个答案:

答案 0 :(得分:5)

我发布此信息给其他所有会遇到同样问题的人(为MIPS平台构建Mono):

最后,我能够使用以下命令行为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文件夹中调用不同的 make 命令不会做任何事情。