にゃははー

はへらー

GNATのインストールがうまくいかない

やっぱGNU makeはいろいろやばい もうおわこんだろ・・・

というのもGNATのビルドプロセスを追ってみればわかる。例えばGCC 4.4が入ってる環境でGCC 4.5をビルドしようとする。ちなみに各コマンドは同一シェル内で実行する。
あと、4.4のインストールされているところとは違うディレクトリにインストールする。つまり、/usr/bin/gcc-4.4 -> /usr/bin/gccだとして、--prefix=/usr/localとする。

./configure --prefix=/usr/local ... && make
↓ ← 現在のGNAT 4.4を使う
make install
↓ ← GNAT toolsのインストールが行われる (GNAT 4.5は確かにインストールされるが、現在のシェルは4.4を呼びに行く
↓ ← GNATの何かをここでビルドする (なぜ?なぜインストールプロセス中に行う?これがよくわからん
  ↓ ← ビルドする際に、当然GNATはmake内で起動されるのでそれまでのシェルを使用してても4.5のGNATを呼びに行く
  ↓ ← GNATの吐くオブジェクトファイルはマイナーバージョンごとに互換性がなくなるらしくmake時に使用したGNAT 4.4とビルドしたGNAT 4.5をつなげようとしてエラー
  → 樹海

互換性がなくなるのはまぁいいんだ、まぁそこは許容するとして、インストールプロセス中にビルドするなよ...
あと、壊滅的な問題。configureでみんな--program-suffix=-4.5とかすると思うんだけど、GNATはこれを無視するんDa☆

やめてくれ... contributorはどうやってインストールしてるんだ・・・
誰か知ってる人・・・お願いいたします・・・