2008年12月4日木曜日

GCC の MIPS ターゲット

newlib で作ろうとしたら、asm/unistd.h が無いよ!と、明らかに Linux Kernel の header らしきファイルを要求されて上手く行かなかった。

しかたがないので、--disable-libstdc と --disable-libstdcxx で作ってみた (MinGW + MSYS + flex + bison)。
$ ../binutils-2.19/configure --prefix=/usr/local/mips --target=mips-elf --disable-nls --without-included-gettext
...
$ ../gcc-4.3.2/configure --with-gmp=/usr/local --with-mpfr=/usr/local --enable-languages=c,c++ --disable-nls --disable-win32-registry --di
sable-shared --without-x --without-included-gettext --disable-libssp --prefix=/usr/local/mips/ --target=mips-elf --disable-multilib --with
out-fp --disable-libmudflap --disable-libstdc --disable-libstdcxx --disable-libstdcxx-pch --enable-threads --enable-hash-synchronization
...

enable-threads とか enable-hash-synchronizasion は、特に意味が無いようだ。disable-libstdcxx-pch も、たぶんいらない気がする (MinGW では、pch (PreCompiled Header) のテストが通らないから、いつまでたっても gcc が 4 系にならないらしい。ssp (StackSmashingProtector) と pch は disable にしないと、普通の gcc もビルドできない。
$ /usr/local/mips/bin/mips-elf-gcc-4.3.2.exe -v
Using built-in specs.
Target: mips-elf
Configured with: ../gcc-4.3.2/configure --with-gmp=/usr/local --with-mpfr=/usr/local --enable-languages=c,c++ --disable-nls --disable-win32-registry --disable-shared --without-x --without-included-gettext --disable-libssp --prefix=/usr/local/mips/ --target=mips-elf --disable-multilib --without-fp --disable-libmudflap --disable-libstdc --disable-libstdcxx --disable-libstdcxx-pch --enable-threads --enable-hash-synchronization
Thread model: single
gcc version 4.3.2 (GCC)

0 件のコメント: