|
|
发表于 2006-7-2 13:16:55
|
显示全部楼层
试了一下,可以编译了。写一下给大家参考,其中有一些小问题,请指点。
我用两台局域网里的机器,一台是 athlon-xp 另外一台是 k6-2
现在的试验是 athlon-xp 帮 k6-2 编译,k6-2 本机不参加编译。
我的步骤:
1。athlon 用 crossdev 造一个 i586-pc-linux-gnu 的工具链。
期间有一个问题,就是hardened的gcc不成功,gcc-config 了 vanilla 后才行
2。两台机器上装 distcc
3。athlon 上启动 distccd 服务
有一个小问题,配置里用 listen 选项时不能启动服务,只能用 allow 选项
4。k6-2机器上,/etc/make.conf 里往 FEATURES 里加入 distcc,并且用distcc-config --sethost "192.168.0.100"来设置参加编译的IP,我没加localhost,因为k6-2太慢
5。根据gentoo帮助文件,在k6-2的/usr/lib/distcc/bin里,删除了cc,c++,gcc,g++,然后做一个可运行的 i586-pc-linux-gnu-wrapper,其内容为:
#!/bin/bash
exec /usr/lib/distcc/bin/sparc-unknown-linux-gnu-g${0 [-2]} "$@"
然后再做 cc,c++,gcc,g++这四个连接到 wrapper,目的是当 portage 运行cc,则distcc
运行 i586-pc-linux-gnu-gcc,因为在编译的机器上,cc 是为本机编译的,要用 i586...全称才不会混淆。
6。k6-2机器上运行:
# export PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin {PATH}"
这样现使用distcc下的gcc,g++等命令
现在,可以编译了。
剩下的问题,k6-2上运行 distccmon-text 看不到任何东西。
但是,当我在athlon上关闭distcc服务,k6-2上的编译就报错,所以,distcc应该是工作的,而且编译了一次内核,时间缩短了很多。
我参考了gentoo的这个帮助文档:
http://www.gentoo.org/doc/en/cross-compiling-distcc.xml |
|