PowerMac Ubuntu9.10にARMクロスコンパイル環境構築しようとして挫折
LANDISK HDL4-Gにtelnetを入れたら(使えるようにしたら)、色々やりたくなってきてしまって…。LANDISK HDL4-GをNFSサーバにする事が目的だったのですが、それに満足出来なくなってしまって…。
debianパッケージの最新版は、armelアーキテクチャの物しか置かれていなくて、最新版のarmアーキテクチャ用を用意するには、自分でコンパイルする必要があります。
それで、次の記事を参考に、PowerMacのUbuntu 9.10用にクロスコンパイル環境を構築しようとしました。
結果から言うと、失敗しました。もう、手の出し様の無い所なので、挫折しました。
まず、apt-crossのインストールです。
$ sudo apt-get install apt-cross
次に、クロスコンパイラ用のライブラリとヘッダをインストールします。
$ sudo apt-cross -a arm -S stable -m http://ftp.jp.debian.org/debian/ --update $ sudo apt-cross -a arm -S stable -m http://ftp.jp.debian.org/debian/ \ > --install gcc gcc-4.3 libgcc1 cpp cpp-4.3 gcc-4.3-base libgomp1 libc6-dev
そして、binutil(as, ldなど)をインストールします。
$ wget http://ring.maffin.ad.jp/archives/GNU/binutils/binutils-2.20.1.tar.bz2 $ tar jxvf binutils-2.20.1.tar.bz2 $ cd binutils-2.20.1/ $ ./configure --target=arm-linux-gnu --enable-shared \ > --prefix=/usr/cross/arm $ make $ sudo make install $ ls -1 /usr/cross/arm/bin arm-linux-gnu-addr2line arm-linux-gnu-ar arm-linux-gnu-as arm-linux-gnu-c++filt arm-linux-gnu-gprof arm-linux-gnu-ld arm-linux-gnu-nm arm-linux-gnu-objcopy arm-linux-gnu-objdump arm-linux-gnu-ranlib arm-linux-gnu-readelf arm-linux-gnu-size arm-linux-gnu-strings arm-linux-gnu-strip
bison, flexなどもインストールします。
$ sudo apt-get install bison flex $ sudo apt-get install libgmp-ocaml-dev libmpfr-dev
いよいよ、gccのコンパイルです。
$ wget http://ring.maffin.ad.jp/archives/GNU/gcc/gcc-4.3.4/gcc-4.3.4.tar.bz2 $ mkdir source $ tar jxvf gcc-4.3.4.tar.bz2 -C source $ mkdir -p build/gcc $ cd build/gcc $ sudo su # export PATH=/usr/cross/arm/bin:$PATH # /home/username/cross-compile/gcc-4.3.4/source/gcc-4.3.4/configure \ > --prefix=/usr/cross/arm \ > --target=arm-linux-gnu \ > --enable-shared --disable-nls \ > --with-as=/usr/cross/arm/bin/arm-linux-gnu-as \ > --with-ld=/usr/cross/arm/bin/arm-linux-gnu-ld \ > --with-headers=/usr/arm-linux-gnu/include \ > --with-libs=/usr/arm-linux-gnu/lib \ > --enable-languages="c,c++" \ > --disable-sjlj-exceptions # make
途中でエラーになるので、includeファイルをリンクします。
# pushd /home/username/cross-compile/gcc-4.3.4/build/gcc/arm-linux-gnu/libgcc # ln -s /usr/arm-linux-gnu/include # popd # make
さらに続けると、makeの途中で、次のエラーが出ました(行を折り返しています)。
/home/username/cross-compile/gcc-4.3.4/build/gcc/./gcc/xgcc -B/home/username/cross-compile/gcc-4.3.4/build/gcc/./gcc/ -B/usr/cross/arm/arm-linux-gnu/bin/ -B/usr/cross/arm/arm-linux-gnu/lib/ -isystem /usr/cross/arm/arm-linux-gnu/include -isystem /usr/cross/arm/arm-linux-gnu/sys-include -O2 -g -g -O2 -O2 -O2 -g -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fomit-frame-pointer -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../.././gcc -I/home/username/cross-compile/gcc-4.3.4/source/gcc-4.3.4/libgcc -I/home/username/cross-compile/gcc-4.3.4/source/gcc-4.3.4/libgcc/. -I/home/username/cross-compile/gcc-4.3.4/source/gcc-4.3.4/libgcc/../gcc -I/home/username/cross-compile/gcc-4.3.4/source/gcc-4.3.4/libgcc/../include -DHAVE_CC_TLS -o unwind-dw2.o -MT unwind-dw2.o -MD -MP -MF unwind-dw2.dep -fexceptions -c /home/username/cross-compile/gcc-4.3.4/source/gcc-4.3.4/libgcc/../gcc/unwind-dw2.c -fvisibility=hidden -DHIDE_EXPORTS /home/username/cross-compile/gcc-4.3.4/source/gcc-4.3.4/libgcc/../gcc/unwind-dw2.c: In function 'init_dwarf_reg_size_table': /home/username/cross-compile/gcc-4.3.4/source/gcc-4.3.4/libgcc/../gcc/unwind-dw2.c:1419: internal compiler error: in arm_dbx_register_number, at config/arm/arm.c:18265 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. make[2]: *** [unwind-dw2.o] エラー 1
Bugzillaも見ましたけれど、解決されていない様です。
お手上げです。
ディスカッション
コメント一覧
まだ、コメントがありません