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

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

自前で microblaze 用の glibc をつくる

で自前で glibc を作るとどうなるか?まず gcc を使ってしまう。したがって、多くの場合 gcci386 用だから、i386 用の gcc が起動されることになる。しかし、configure では target に microblaze-bluecat-linux を指定しているので microblaze 用のアセンブラなどが利用される。ここでエラーとなる。本当は、

export CC=microblaze-linux-elf-gcc
export AR=microblaze-linux-elf-ar
export RANLIB=microblaze-linux-elf-ranlib

とするのだ。x さんしらないのかな、、、。ここまで辿りつくのに3日かかった。なんだよ。さて、これで glibc を元気よくコンパイルできるのかと思ったら、、、、今はshared 関連で躓いている。

microblaze-linux-elf-gcc -nostdlib -nostartfiles -o /home/ryos/works/gcc-mb-4.1.1/build_glibc/iconv/iconvconfig      -Wl,-z,relro /home/ryos/works/gcc-mb-4.1.1/build_glibc/csu/crt1.o /home/ryos/works/gcc-mb-4.1.1/build_glibc/csu/crti.o `microblaze-linux-elf-gcc --print-file-name=crtbegin.o` /home/ryos/works/gcc-mb-4.1.1/build_glibc/iconv/iconvconfig.o /home/ryos/works/gcc-mb-4.1.1/build_glibc/iconv/strtab.o /home/ryos/works/gcc-mb-4.1.1/build_glibc/iconv/xmalloc.o /home/ryos/works/gcc-mb-4.1.1/build_glibc/iconv/hash-string.o  /home/ryos/works/gcc-mb-4.1.1/build_glibc/libc.a  -lgcc -lgcc_eh /home/ryos/works/gcc-mb-4.1.1/build_glibc/libc.a -lgcc -lgcc_eh `microblaze-linux-elf-gcc --print-file-name=crtend.o` /home/ryos/works/gcc-mb-4.1.1/build_glibc/csu/crtn.o
/home/ryos/microblaze-linux-dev-root/linux-elf/bin/../lib/gcc/microblaze-linux-elf/4.1.1/../../../../microblaze-linux-elf/bin/ld: cannot find -lgcc_eh

iconv のコンパイル中に gcc_eh を必要とする。これは gcc をつくるときに --disable-shared としたからだ。まだ先は長いな。まぁ問題はこれだけだとわかっている(つもり)、だから後もう少しと考えよう。