karubabuの日記

タイトルに解決と書いているものがあるけれど、別に付いていない物は解決していないというわけではないです。つまるところ記事を書いた後に解決してちょっと嬉しかったので付けました。

linux版 Civ5はsys-libs/glibcとx11-libs/libxcbをsys-devel/gcc-8.2.0-r2でビルドすると動作しなかった

タイトルの通りです

なにがあった

# gcc-config -l  
 [1] x86_64-pc-linux-gnu-7.3.0 
 [2] x86_64-pc-linux-gnu-8.2.0 *

この状態で

# emerge -e @world

してシステム全体をビルドし直すと、Civ5を起動出来無くなった

実際はビルドし直した後からしばらく経ってからCiv5を起動してみているので本当にここが原因か確実と言える自信はないのかも…

どうした

コンソールで直に起動しようとすると、segmentation faultと出て終了している
dmesgを見ると、

と言われている
とりあえず前のemerge -e @worldが原因の可能性があるので、gccを7.3.0に戻した状態でlibxcb.soをインストールしたパッケージであるx11-libs/libxcbを再ビルドする

% equery b libxcb.so  
 * Searching for libxcb.so ... 
x11-libs/libxcb-1.13 (/usr/lib64/libxcb.so -> libxcb.so.1.1.0)
x11-libs/libxcb-1.13 (/usr/lib32/libxcb.so -> libxcb.so.1.1.0)
# emerge -av x11-libs/libxcb

これをやったところ、まだsegmentation faultで落ちた
dmesgを見ると、

今度はlibpthread-2.27.soで落ちているのでsys-libs/glibcをビルドし直した

% equery b libpthread-2.27.so
 * Searching for libpthread-2.27.so ... 
sys-libs/glibc-2.27-r6 (/lib64/libpthread-2.27.so)
sys-libs/glibc-2.27-r6 (/lib32/libpthread-2.27.so)
# emerge -av sys-libs/glibc

これで無事起動する様になった

おわりに

なんか一瞬で解決したしdmesgとか使って何が悪いのか調べたし雰囲気めっちゃ強そうじゃない??
ほめてね(何もわからんのにgcc8でシステムをビルドし直すな)