binutils(2.12.1, 2.13, 2.13.1, 2.13.2, 2.14)と gcc-3.3.2の組み合わせで h8300-elf- なクロス環境作成調査。というのも手元でSegmentation Fault吐く elf2fltが作成されることがあって、嵌りまくって気持ち悪かったので…やはりツブしておきたいという流れ。
結論:binutils 2.12.1 ○ 2.13 ○ 2.13.1 ○ 2.13.2 ○ 2.14 ×
2.14との組み合わせの場合のみ Segmentation Faultとなり、それ以外の場合はelf形式から同一サイズの bFLTバイナリへ変換成功。2.14ではなぜそのようになるか? は未調査。 こういうバルクなテストやるときは処理が高速なマシンが欲しくなりますな。
#!/bin/sh rm -rf binutils-2.14 tar xzvf binutils-2.14.tar.bz2 cd binutils-2.14 ./configure --target=h8300-elf make make install cp bfd/libbfd.a /usr/local/lib/ cd .. rm -rf gcc-3.3.2 tar xzvf gcc-3.3.2.tar.gz && cd gcc-3.3.2 && patch -p1 < ../gcc.diff ./configure --target=h8300-elf --enable-languages='c,c++' make make install cd .. h8300-elf-gcc -v rm -rf elf2flt tar xzvf elf2flt.20031229.tgz cd elf2flt zcat ../elf2flt.h8300helf.20031229.diff.gz | patch -p0 ./configure --target=h8300-elf \ --with-libbfd=/usr/local/lib/libbfd.a \ --with-libiberty=/usr/local/lib/libiberty.a \ --with-bfd-include-dir=/usr/local/include \ --with-binutils-include-dir=../binutils-2.14/include make make installPosted by minemaz at 2003年12月29日 21:15
雑誌記事でも書きましたが、このコンパイルオプションには
一部誤りがありまして --with-libbfdと --with-bfd-include-dirについて
「binutilsのディレクトリのものを」使うようにしないといけません。
(そうしないと、間違ってインストール済みの他のarchのものを使ってしまう
場合があります)
ということで、上記修正いたします