buildworld の clang 再コンパイル修正が入った2015年09月24日 13時25分16秒

最近は FreeBSD CURRENT をよく追いかけている。どうも buildworld を再度実行した時に clang が不必要に作り直されているのには最近気が付いていた。

最初に見た二、三週間前は、NFS や NULLFS を使っていたせいかと思っていた。しかし、何度か更新を続けていると、UFS でも起きているのを確認したのは、更に最近。

まず、bootstrap 用の clang が一度作られる。その後、toolchain 用に二度目の clang が作られる。そして、toolchain が出来た後に、本格的に buildworld が始まり三度目の clang が作られる。

buildworld をただ単に繰り返しただけで、その第二と第三の clang が必要も無いのに、再コンパイルされているのを突き止めたのが、二、三日前だった。

もう少し詳しく見てみようと思っていたところで、META_MODE: Fix 2nd build causing everything to rebuild due to changed CC. を発見。過度な再コンパイルに気づいていた人はいたみたいで、修正が CURRENT に入ったのを確認した。

これで、余計な clang の時間が大幅に減った。最近は機械が古くなってきているせいで、buildworld に四、五時間掛かることもあるので、かなり楽になる。なお、その大半の時間が clang に消費されていた。