Manjaro Linuxでyaourtを用いたAURパッケージのビルドが非常に遅いので、設定を見なおしてみた。
設定ファイルは/etc/makepkg.confである。
CFLAGSとCXXFLAGS
実行速度のためのパラメータ。
-march=x86-64 -mtune=generic
となっているが、これは一般的なx86_64バイナリ(最適化されない)を生成する。 これを適切な値にすることで最適化されたバイナリを生成する。
通常は
-march=native
とするが、distccでは利用できない。
gcc -c -Q -march=native --help=target | grep march
とすることで最適な値を知ることができる。Xeon W3565ではnehalem, Godavari(A10 7870K)ではbdver3だった。
MAKEFLAGS
並列ビルドのための値が書かれているが、コメントアウトされている。
最適な値はコア数の倍とされているが、distccではコア数が限度のようだ。
BUILDENV
!がついているものは無効。ccacheを有効にするだけでもある程度違うか。
distcc
Arch Wikiの情報が正確で詳しい。
distccをセットアップした上で、makepkg.confの設定を変更する。
なお、DISTCC_HOSTSについて、Zeroconfを使う場合が色々書かれているが、単に.localで名前解決するだけの話であれば普通にホスト名を書ける。
しかし…
-j12でも結局ローカルとリモートの2コアしか使われていなかったようにみえて残念。