日記ブログ、または雑多なメモ
2009年2月19日

Leopard一旦撤退 / KDE-4.2 / distcc@G4 Cube





 せっかく移行したLeopardだが、ghostscript+foomatic+ppdtomdのMD5000ではVDフォト190線の高品質ハーフトーン印刷ができないことに気づき、致し方なく撤退。 イラスト程度ならppdtomdのハーフトーンでもいけるのだが、写真の印刷となるとやはりもたず。 いたしかたなし。 Leopardを使うにはプリンタを買い換えるか、印刷専用のCubeをもう一台用意するしかないが、どっちも何ではある。


 Linux@X300のデスクトップをXFCE4+NautilusからKDE-4.2(svn)に引越し。 「もうKDEに戻ることはないだろうなぁ」みたいなことを前に抜かしたかもしれないが、4.0/4.1の頃のダメ具合はどこへやら、4.2の出来はかなり良い。 開発陣がどういうデスクトップにしたかったのかようやくわかるようになってきたというところ。 Plasma、Dolphinも「こりゃもうダメぢゃねーの?」感たっぷりだったのが、すっかり洗練されている。 一部のフォントレンダリングが相変わらず崩れる(QTの仕様)、システムトレイのアイコン表示がところどころイカれている(これもたぶんQTの仕様)等の不具合はあるものの、気にせず常用決定。


 で、QT4とKDE4のビルドがやたらめったらと時間がかかるので、distccで分散コンパイルしてみたらどうなるか試してみた。 G4 CubeのG4 1.3GHZx2(片方1.2)を使わない手は無い。 まずCubeにて、x86_64向けのクロスコンパイラを作らないといけない。 X300のSlamd64はbinutils2.18とgcc-4.2.4なので、同じgccと、事情によりbinutils-2.19を使用。 やったことは、

*Linux@X300の/usr/includeをまるまるCubeのクロスコンパイル環境にコピー。 環境は/opt/distccにした。
*同じく/lib64(/lib)内のlibc*、ld*、libpthread*、libm*、/usr/lib64(/usr/lib)内のlibc*、crt*.o辺りのlibc関係ファイルをコピー。 multilibなのでx86_64用はlib64、32bit用はlibに入れる。
*lib/libc.soとlib64/libc.soをクロスコンパイル環境に合わせて修正
*ビルド時にSlamd64のlibc_nonshared.aはなぜか読み込んでくれないので、fedora7のglibc-2.7パッケージから同ファイルを拝借
*binutilsをx86_64-slamd64-linuxをtargetに普通にビルド。 オプションはslamd64のものと一緒。
*クロスコンパイル環境用にgccビルドツリーのシステムヘッダの位置修正などして、
$ cp -v gcc/Makefile.in{,.orig}
$ sed -e "s@\(^CROSS_SYSTEM_HEADER_DIR =\).*@\1 /opt/distcc/include@g" gcc/Makefile.in.orig > gcc/Makefile.in

*同じくgccをx86_64-slamd64-linuxをtargetにビルド。 オプションはslamd64のものと一緒。
*distcc-3.0をグーグルから頂いてきてcubeとX300にインストール。
*hello worldなテストファイルをCubeでビルドしてX300で実行してみる。
(G4 Cube)$ /usr/local/bin/distcc x86_64-slamd64-linux-gcc -static-libgcc test.c -o test
(X300)$ test
Content-type: text/plain

Hello, World!

*うまくいったらCubeとX300双方でdistccdを起動。
$ /usr/local/bin/distccd --allow="192.168.150.0/24"

*クライアント側であるX300の設定。 ~/.distcc/hostsにコンパイルに使用するホストを入れておく。
$ nano -w ~/.distcc/hosts
192.168.150.101
192.168.150.10

*実際のコンパイルは以下のような感じで。
$ CC="/usr/local/bin/distcc x86_64-slamd64-linux-gcc" CXX="/usr/local/bin/distcc x86_64-slamd64-linux-g++" ./configure
$ make -j10

*ついでにdistcc3からついたpumpモード。 要するに詰め込んで送って随分と速くなるモードらしい。
$ DISTCC_POTENTIAL_HOSTS="192.168.150.10 192.168.150.101" /usr/loca/bin/pump make -j10


 試しにQTのコンパイルをmake -j10 でさせてみたところCube、X300双方で4つずつコンパイラが動いていて、ほどほど早めに完了した。 こりゃ使える。 ……と思ったら出来たQT4は腐っていた……。 distccの適用が甘いのか対応できてないのかわからないが、とりあえずQTはローカルでビルド、KDE4はdistccでビルドしてもオッケーだった。


 引き続き地味にバンブルビー研究中。 上半身の構造がだいぶ把握できてきたと同時に、劇場CG版はあれはあれでかなりCGならではの不思議関節を持っていることもわかった。 そのまま素直に立体化はできないのであれこれ考え中。



コメント欄
(投稿なし)

コメントなどありましたらこちらからどうぞ
名前
内容
 ※名前、内容ともに入力必須です
- C'sGallery Blogっぽく見えるシステム3.2 -
小武 (管理人) eta2@tim.hi-ho.ne.jp