【发布时间】:2016-06-21 01:50:58
【问题描述】:
我完全被难住了。我正在尝试使用使用 Buildroot 和 Crosstool-NG 生成的 eglibc 工具链来编译 Mono。我无法构建 3.0.3 之后的任何版本。版本 3.0.3 构建并执行得很好...更高版本在尝试编译 mscorlib 时挂起。下面列出了它挂起的输出。
使用 strace 似乎 mscorlib 的编译已成功完成,但所有剩余的作业都在等待一些永远不会完成的事情(我的 cpu% 降至 0,所以什么都没有发生)。
非常感谢任何尝试的建议。这是挂起时的 make 输出:
--- 之前的输出被忽略了
在运行时完成所有操作
make[2]: 进入目录`/home/test/dev/mono-3.0.7/runtime'
如果测试 -w /home/test/dev/mono-3.0.7/mcs;然后 :;否则 chmod -R +w /home/test/dev/mono-3.0.7/mcs;菲
cd /home/test/dev/mono-3.0.7/mcs && make --no-print-directory -s NO_DIR_CHECK=1 PROFILES='net_2_0 net_3_5'CC='i686-buildroot-linux-gnu-gcc '所有配置文件
引导编译器:Mono C# 编译器版本 2.10.8.1
MCS [build] mscorlib.dll
谢谢!
【问题讨论】:
-
尝试
make V=1以查看更多输出;另外,您使用的是什么发行版? -
我在 Debian 7 上构建。我使用的是 Debian 6,并决定创建一个 Debian 7 VM,看看是否有新工具可以解决问题。感谢您的建议,我会尝试并回复。今天我尝试将 crosstool-ng 中的 eglibc 切换到 glibc(gcc 4.5.3 和 glibc 2.11),但当它尝试构建确切的东西时出现分段错误。
-
感谢make V=1的建议。似乎以下原因导致挂起: MONO_PATH="./../../class/lib/basic:$MONO_PATH" /home/test/dev/mono-3.0.7/runtime/mono-wrapper ./ ../../class/lib/basic/basic.exe [删除]。在 3.0.3 和更早的标签中,它运行并退出。后来的转速只是挂起......即使没有参数我得到“错误CS2008:没有文件......”并且它永远不会返回到提示。有什么想法吗?
-
这是来自 gdb 的堆栈跟踪(最后 4 行):#0 0xb7702424 in __kernel_vsyscall () #1 0xb75c6dc4 in pthread_join () from /home/test/dev/test2/host/usr/i686 -buildroot-linux-gnu/lib/libpthread.so.0 #2 0x08250806 in GC_pthread_join (thread=3009162048, retval=retval@entry=0x0) at pthread_support.c:1343 #3 0x081e27b1 in mono_gc_cleanup () at gc.c: 1218 #4 0x081d9f37 in mono_runtime_cleanup (domain=domain@entry=0x34e58) at appdomain.c:355
标签: mono cross-compiling