独自にインストールした 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 が並ぶのかもしれないけど、多分大丈夫。