自前で microblaze 用の glibc をつくる
で自前で glibc を作るとどうなるか?まず gcc を使ってしまう。したがって、多くの場合 gcc は i386 用だから、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 としたからだ。まだ先は長いな。まぁ問題はこれだけだとわかっている(つもり)、だから後もう少しと考えよう。