(toppers-users 644) Re: libiberty.h がない

Takayuki WAKABAYASHI takayuki @ ertl.ics.tut.ac.jp
2002年 11月 26日 (火) 14:46:18 JST


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

ちょっと順不同になりますが、気が付いたところからコメントさせていただきま
す。
 #どこからスタートしているのかよくわからなかったので
 #手近なところから行きます


--- TOPPERS/JSP Windows (cygwin)

まず、TOPPERS/JSP Windowsシミュレータがcygwinに対応しているかですが、対
応していません (昔はかろうじて動くものはありましたが)。

これは、私がcygwin環境を捨ててしまったので保守できなくなったこと、タスク
例外の起動にインラインアセンブラを使用せざるを得なくなったこと、デバイス
エミュレータやシステムログなどのCOM通信を行う周辺環境までcygwinで用意す
るのは難しいことなどが理由です。またcygwinでWindowsシミュレータを使用し
ようという方が少なかったのもひとつです。

対応プロセッサ欄にある "i386" というのは、本当にピュアにi386 (PC/AT)上で
動作するカーネルです (ACKyugoさん作, 現在はもなかさんが管理されていま
す)。

最近はmingwばっかりなので、対応するとなるとこちらに傾く可能性の方が高い
です。


--- Binutilsが要る理由

Binutilsが必要なのは、コンフィギュレータと一緒に入っているコンフィギュ
レーションチェッカ(chk)が同プログラムのライブラリの一部 (libbfd.a,
libiberty.a) を使用しているためです。

uITRON4.0仕様OSでは、静的なカーネルオブジェクトを処理するためのツールで
ある「コンフィギュレータ」が必要になります。動的生成のないJSPカーネルに
おいてはコンフィギュレータは必須であり、TOPPERS/JSPを展開した後の最初の
configure実行時にコンフィギュレータが生成されます。このコンフィギュレー
タではある程度のパラメータチェックを行う必要があるのですが、我々のツール
ではパラメータチェックはchkと呼ばれる別プログラムに分離してあります。こ
のチェッカが生成されたオブジェクトファイルを操作する際、binutilsが用いて
いるBFDライブラリを使用するため、binutils(のライブラリ)が必要になりま
す。Windows環境では、Win32ライブラリ(Win32 ImageHelper API Library)が使
用されます。

カーネルのコンフィギュレーション結果に自信があればチェッカは無くても大丈
夫ですので、Makefileでchkを起動している場所を削除されてもかまいません。

チェッカのBFD依存は不評なので外そうかと思っています。次期コンフィギュ
レータに外部プログラム起動ルーチンをつけたので、それをそのままチェッカに
流用してobjdumpでも起動しようかと思います。


--- Bintuilsはどこに行ったか

なにも設定せずにconfigureをした場合、確かデフォルトは/usr/local だったと
思います。


--- MIPSの開発環境の作り方を紹介するページ

MIPSのターゲット名は "mips-elf" でいきます。binutilsのconfigureの際には
"configure --target=mips-elf --disable-nls --prefix=/usr/local"、gccの
configureの際には"configure --target=mips-elf --disable-nls
--with-gnu-ld --prefix=/usr/local --enable-languages="c" "で大丈夫だと思
います。

具体的な方法について書いてある詳しいページに関しては、有志でPlaystation
のゲームを作ろうとしてmips-elf-gnuを使用しているグループがあるので、その
辺の単語を元に探せば何件かヒットすると思います。

最近この手の話題が多いので、私もこの手のページを作ろうかと画策中です (作
りかけの物を公開してありますが)。


--- cygwin上で行うconfigureのオプション

TOPPERS/JSP Windows依存部はcygwinに対応していないので、cygwinを用いたセ
ルフ開発環境は利用できません。

その他のターゲットの場合には、それぞれのターゲットに対応したクロスコンパ
イラが必要になります。それぞれのターゲットに対応するターゲット名は (多
分) ドキュメントにあると思いますので、そちらをご参考ください。


--- コンパイラ

もなかさんからもご指摘がありましたように、gcc 3.0系でコンパイルするとコ
ンパイルエラーになることがわかっています。詳細に関しては "(toppers-users
416) RE: TOPPERS/JSPのインストール" をご参考ください。過去ログはTOPPERS
プロジェクトのページの"ML & Contacts"からたどれます。

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