今日の作業
7:29
crosstoolでBINTUILS_DIR=binutils-050606にしてビルド開始したら、gccかglibcのconfigureのバージョンチェックで跳ねられた。とりあえずインストールされたgasを実行して確認してみたところ、件の問題は解消されている。よし! なんとかこのバージョンのbinutilsでtoolchainを作れるようにしよう。
21:57
binutilsのconfigureでVERSION=050606になっているところをVERSION=2.17に書き換えてやると、crosstoolで無事ビルド出来た。
で、IPPをsoftfpaでリンク出来るように書き換え。
>>> softfpa.py
import sys
buf = file(sys.argv[1], "rb").read()
for i in range(len(buf)):
if buf[i:i+3] == "ELF":
if ord(buf[i+36]) == 0x06:
buf = buf[0:i+36] + chr(0x02) + buf[i+37:]
file(sys.argv[1], "wb").write(buf)
>>> for i in *.a; do softfpa.py $i; done
22:05
むぅ、無理矢理softfpaに変更したIPPだと映像のデコードが少しおかしい。レジスタ保存まわりのABIが違うんかな。
これを機にiWMMXt版はIPPから脱却するか。ライセンス的に不安なところがあるし。
22:14
って、上記の件は自分で入れ込んだバグだった。
22:44
うーむ、最新のbinutilsでもプリ/ポストインデックスは使えないようだ。アセンブル自体は通るんだけど、意図した結果が出ない。ARMでの命令エンコーディングが分からないのでハッキリとは言えないんだけど、アセンブラのバグなんじゃないかと思う。はてさて。
ARMアーキテクチャのマニュアルが欲しいんだけど、オンラインマニュアルは無くて本を買わないといけないみたい。10000円だって。どうしよう。