サーバのメンテ

仕方ないのでgccのバージョンを上げました。-O3にしてたのも-O2と-march=nativeに変更。これが一番最適化されるらしいので試して見ようかと思って。それと-fno-strict-aliasingも付けた。ポインタの型変換だけで違うタイプのメモリアクセスした場合に警告が出なくするだけですが、unionを使えば警告が出ないといわれてます。しかしunionってシステム依存な部分が多いから移植性に問題がありそうな気がする。恐らく使われることも少ないと思って警告をOFFという形で対処です。この辺りのプログラミングは宗教論争と同じだからなくすなら言語を変えるしかないだろうし。
全部コンパイルしたかったのですが、emerge -e systemを実行したらコンパイルできないのがあった。コンパイルされる順番が悪いのかフラグがいろいろ変わって駄目なのかよくわからず。GNOMEのバージョンも上がってるのでアップデート分のコンパイルを先に行いました。
引っかかったのがgststreamer関係。blockedの問題は軽度ですけど、gst-plugins-pangoのコンパイルがなかなか通らなかったので焦った。cairo辺りのエラーが出てたのでcairoをリコンパイルしても駄目。emerge –syncを実行してもしや?と思ってpangoをリコンパイルしたら通った。何をリコンパイルしたらいいかわからんのがGentooの悪いところというか欠点に思える。関連するパッケージが入ってればどんなコンパイルオプションだろうがある程度通ってしまうから整合性を取るのもむずかしいのでしょうね。これがソースビルド系のつらいところか。