distcc その後の大逆転

こんな ML の痕跡を発見しまして、

もしや?!と思い立って、再度 distccを試してみたところ....おお〜! distccmon-text が distributed address を表示してるぅ〜(号涙

ということで、アッサリ上手く行っちまいやがりました。今回の一連の騒動は、/tmp にマウントしていた tmpfs に原因があった、と思われます。tmpfs を umount したら、上述の通りです。

ちなみに、試した組み合わせをまとめさせていただきますと、最終的に下記の通りとなります。

i386/7.1-release
成否 tmpfs の有無 distcc gcc
X O 2.18.3_10 4.2.1 20070719
O X
X O 3.1 (野良ビルド)
amd64/7.1-release
成否 tmpfs の有無 distcc gcc
X O 2.18.3_10 4.2.1 20070719
O X
X O 3.1 (野良ビルド)
amd64/8.0-current
成否 tmpfs の有無 distcc gcc
X X 2.18.3_10 4.2.1 20070719
X X 3.1 (野良ビルド)
X X 4.3.4 20090405

前回は tmpfs を使用していない 8.0-current で失敗しておりましたので、早期発見に繋がりませんでした(8.0-current を常用しようと思っておりましたが、こういう細かいところにまだまだ不具合が在るところがやはり current の成せる技なのか、と思いました)。

やはり、伸縮するディスク、という性質が、それを想定していないコードとの間に問題を発生させているのでしょうか。OS 絡みのコードにはあまり詳しくありませんので、子細はちょっと不明ではありますが、それにしても、さすが extra experimental feature、してやられました。

ただ、私の環境で time を取ったところでは、一時ファイルの収容先を tmpfs に変更するだけで、平均 3割前後のコンパイル時間の短縮に貢献しておりましたので、いささか残念ではあります。

さぁ、これで足の遅いラップトップにもガンガンにインストールできるようになりました。いよいよ swap の ZFS 化と、もろもろの設定、と行きたいところです。

が、しかし、cocelo さまから頂いたコメントにもありますように、buildworld では distcc が発動しませんでした。さらにしかし、buildworld こそ、distcc を使わねばならない工程ですから、せっかく稼働するところまで辿り着きましたので、調査継続です。