新千葉 ガーベージ・コレクション

FPGA マガジンやインターフェースで書けなかったこと等をちょぼちょぼ書いてます。@ryos36

MicroBlaze Linux 再び

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 に変えればよい。

さて、ただいまコンパイル中。
ここまではうまくいくはずなのだが、、、