SP605 で MicroBlaze Linux の環境を再度構築し始める。
最新の linux をコンパイルするには対応したコンパイラーが必要。Xilinx の git にある v1.0 は古くて、v2.0 は 64bit 用。しかたないから自分で作ることにする。
まず git サーバから mb_gnu を持ってくる。これから、まず、linux 環境のコンパイラを作る。
binutils からつくる。ところが、binutils/bfd/poで MSGFMT=no になってしまう。
これは configure が MSGFMT をみつけられなかったら no というコマンドに置き換えてしまうからのようだ。
no というコマンドあればいいのだが、、、ほんとは msgfmt になる必要がある。そこで、
apt-get install gettext binutils/configure --target=microblaze
binutils はすんなりできた。次に gcc 。
gcc/configure --target=microblaze \
--enable-languages="c,c++" \
-
- with-newlib \
- enable-multilib \
- disable-libssp \
--disable-newlib-atexit-dynamic-alloc \
--enable-optimize-memory
とちゅうで microblaze-ar や microblaze-ranlib がスタックオーバフロー!!で死ぬので、ホストの ar と ranlib に置き換え(ln -s で置き換えした)。これは ar や ranlib が機種非依存であるという読みから。根拠があるわけではない。じゃなかったら xilinx 提供の ar ranlib に変えればよい。
さて、ただいまコンパイル中。
ここまではうまくいくはずなのだが、、、