独自にインストールした gcc と libtool を利用した場合のトラブル
ちょっと古いOSにいくつかツール&ライブラリを構築する必要が出てきた。だいたいこういうケースは色々な問題が生じるのだけど、今回は管理者権限がない+αの理由で、すべてユーザ権限のもとビルドしないといけない。
gcc からはじまって、 X11 までビルド。dev パッケージをいれてもらえればそこまでする必要はないはずなのに、いろいろなパッケージが足りない事から、こういう状況に。
いくつか問題はあったのだけど、だいたい目的を果たせそうになってきた所で、
- Xserces
- Mesa
のビルドで問題発生。どちらも autotools + libtool でビルド環境が整備されるのだけど、デフォルトの gcc ではない別バージョンの gcc を利用すると、 libtool でリンク時に 32bit バージョンと 64bit バージョンの libstdc++.so をリンクしようとする。結構古い問題で、10年前くらいからいろいろポストされているようなのだけど、きまった解決策がないような感じ。
いろいろいじってみた結果、
- 64 bit のものをつくりたいのであれば
- 32 bit 版の libstdc++.la を編集し、ライブラリディレクトリを 64bit の方にしておく
ことで解決できそうになった。 libtool の出力には二つ libstdc++.so が並ぶのかもしれないけど、多分大丈夫。