4

我正在尝试为 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 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 的文章/信息(至少是一些最近的信息)。根据链接,大约一年前添加了对 MIPS 的支持。Mono 本身应该从3.0.4 版本开始完全支持 MIPS 。

4

1 回答 1

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)。

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

于 2013-03-26T07:53:58.790 回答