Monthly Archives: 11月 2006
links for 2006-11-30
links for 2006-11-21
[memo] 異なるアーキテクチャ間でクロスコンパイル
前提条件
基本的にはGentoo distcc ドキュメント・DistCC クロスコンパイルガイド、この2つのドキュメントの通り行う。気をつけなきゃいけないのは、「資源を借りる側」と「資源を貸す側」で若干設定が異なる点。ここでは借りる側はi686(192.168.0.4)、貸す側はamd64(192.168.0.3)とする。
貸す側と借りる側で、gccのバージョンは同じであること。3.3.x同時はOKだが、3.3.xと3.2.xは混ぜないこと。
また、資源を借りる側は一方的に借りるだけで、相互に助け合わない設定とした。これは、貸す側はサーバなので24時間稼働しているが、借りる側はノートなのでそうした。
資源を貸す側の設定
emerge distcc crossdev
vi /etc/make.conf
MAKEOPTS="-j8" #(CPUの数+1)*2 ここは全体じゃなくてサーバ単体で計算すべきなのかも。詳細不明…もしかしたら-j6が当たりなのかも?
FEATURES="distcc"
DISTCC_DIR="/var/tmp/.distcc"
PORTDIR_OVERLAY="/usr/local/portage"
distcc-config --set-hosts "localhost 192.168.0.4"
vi /etc/conf.d/distccd
DISTCCD_OPTS="${DISTCCD_OPTS} --allow localhost --allow 192.168.0.4" #--allow 192.168.0.0/24でも可
/etc/init.d/distcc start
rc-update add distcc default
crossdev -t i686
資源を借りる側の設定
emerge distcc
vi /etc/make.conf
MAKEOPTS="-j8" #(CPUの数+1)*2
FEATURES="distcc"
DISTCC_DIR="/var/tmp/.distcc"
vi /etc/conf.d/distccd
DISTCCD_OPTS="${DISTCCD_OPTS} --allow localhost" #相互に助け合いたい場合は--allow 192.168.0.3を足すか--allow 192.168.0.0/24にする
cd /usr/lib/distcc/bin
rm c++ g++ gcc cc
echo '#!/bin/bash' > i686-pc-linux-gnu-wrapper
echo 'exec /usr/lib/distcc/bin/sparc-unknown-linux-gnu-${0##*/} "$@"' >> i686-pc-linux-gnu-wrapper
chmod a+x i686-pc-linux-gnu-wrapper
ln -s i686-pc-linux-gnu-wrapper cc
ln -s i686-pc-linux-gnu-wrapper gcc
ln -s i686-pc-linux-gnu-wrapper g++
ln -s i686-pc-linux-gnu-wrapper c++
/etc/init.d/distcc start
rc-update add distcc default
export CC="i686-pc-linux-gnu-gcc"
実際に試す
借りる側から何か(それなりに時間のかかりそうなものを)emergeし、貸す側でtopコマンドで見てみる。distccというUSERでdistccやcc1というプロセスが見えれば成功している。当たり前だがコンパイルは速くなるが、configureやアーカイブのunpackは速くならないのであしからず。また、貸す側ではデフォルトでnice -15で実行されている。これは /etc/conf.d/distccdのDISTCCD_NICEで設定されているので、貸す側が暇なマシンなら変更してもいい。
links for 2006-11-17
ボジョレー買ってきた
風呂入ってから、Binary Hacks読みつつチビチビ飲む予定。なんか毎年テレビとかで「今年のは最高の出来」とか言ってる気がする。映画の宣伝で何かにつけて全米一位とか言ってるのと一緒かね。
links for 2006-11-14
Binary Hacksが来ない
届かねぇyp!!!!1111!!とか思ってたらamazonでは14日発売なんだな…今日発送したとメールが昼頃に来てた。
あ、そうそう、バイナリアン度チェックでは60点ですた…ヘボイ。つかね……extern “C++”とか知らないって。何に使うのそれ。extern “C”の存在意義はわかるんだけども。あと「数値 -1.75 を IEEE754 単精度浮動小数点数として表現」って問題、正直計算面倒になって勘で答えた。俺の勘は当てにならないことがよくわかった。まぁそんなわけで、本が届いたら間違えたところの答えを探しながら読むことにする。

Recent Comments