(toppers-users 701) Re: GNU 開発環境構築について

Takayuki WAKABAYASHI takayuki @ ertl.ics.tut.ac.jp
2002年 12月 24日 (火) 18:08:28 JST


豊橋技術科学大学の若林です。

Kobayashi Hiroaki [mailto:h-kobayashi @ pie-soft.co.jp] さんは書きました:
 >  gcc-core-3.2.tar.gz に変えて構築してみましたが、エラーが
 > でてしまいました。

エラー内容を拝見すると、gccがターゲット依存のライブラリ(libgcc)を生成す
る際、アセンブリ言語で記述されたファイルをasに渡した結果、asが「そんな命
令は知らない」と文句を言っているように見えます。特に最初の行はコメントに
対して反応しているので、ソースの問題ではなく、ツールリンクの異常だと思い
ます。ソースファイルはgcc-3.2/gcc/config/h8300/lib1funcs.asmだと思いま
す。

gccのmakeの時、ライブラリを作るためのgccとしてxgccという実行ファイルを生
成します。多分/home/kobayashi/src/gcc-3.2/work/gcc/xgccという名前になっ
ていると思います。このxgccに対して次のコマンドを実行してください。

./xgcc -print-prog-name=as

binutilsがちゃんと入っていて、期待通りのconfigureがされていれば、上の実
行結果は次のようになります。

/home/kobayashi/h8/h8300-hms/bin/as
または
/home/kobayashi/h8/bin/h8300-hms-as

これが単にasとなっていた場合、きっとネイティブのas(i686-pc-linux-gnuと
か)が使用されています。その場合はgccのconfigureに失敗しているケースが多
いです。

そしてこのとき出力されたパスにあるasに対して、次のコマンドを実行してくだ
さい。

/〜/as --version

このとき、最後に「このアセンブラはターゲット "xxx" 用に構成されてます」
というメッセージが出ます。このターゲットがh8300-hmsになっていないのであ
れば、大抵の場合binutilsのconfigureに失敗しています。as自体がない場合、
binutilsのmake installに失敗している可能性があります。

対処ですが、./configure --helpを実行し、出てきたヘルプのディレクトリ指定
の項目をみて、configureにつけるべきオプションをよく検討するのが一番だと
思います。結構参考になると思います。単純なprefix以外にも、exec-prefixと
かbindirとかもあります。私もこの情報を参考に、自分が研究用に使う改造済み
開発環境を/home/takayuki/research/utilsとかに格納していますが、研究室の
サーバのディスク(/home)を圧迫して管理者に怒られる以外、今のところ問題が
起ったことはありません。
 #H8の環境は持ってないですが...

configureは前に実行した結果をキャッシュするので、再configureするときはオ
ブジェクトツリーを全削除してからやった方が安心です (時間はかかります
が)。

--------
豊橋技術科学大学 情報工学系 組込みリアルタイムシステム研究室
  若林 隆行 (mailto:takayuki @ ertl.ics.tut.ac.jp)