• ベストアンサー

クロス環境の構築

i686マシンにi586用のバイナリを作成できるようクロスコンパイル環境を構築中なのですが、gccのコンパイルエラーで躓いています。 http://0x100.com/Gentoo/PPC64/kernel_crosscompile.html を参考に (binutils のインストール) $ tar zxf binutils-2.14.tar.gz $ mkdir binutils-2.14/work $ cd binutils-2.14/work $ ../configure --target=i586-linux --prefix=/usr/local $ make # make install (gcc のインストール) $ tar zxf gcc-3.3.2.tar.gz $ mkdir gcc-3.3.2/work $ cd gcc-3.3.2/work $ ../configure --target=i586-linux --prefix=/usr/local --enable-languages=c,c++ $ make 【 「../../gcc/config/i386/linux.h:232:20: signal.h: そのようなファイルやディレクトリはありません」というエラー。そこで、gcc-3.3.2/work/gcc/Makefile の LIBGCC2_INCLUDES に -I/usr/include を追加 】 $ make 【 今度は 「/usr/local/i586-linux/bin/ld: cannot find -lc」というリンカオプションエラー。gcc-3.3.2/work/gcc/Makefileの SHLIB_LC = -lc をコメントアウトすることで応急処置】 $ make (略) checking whether the C compiler ( /home/****/gcc-3.3.2/work/gcc/xgcc -B/home/****/gcc-3.3.2/work/gcc/ -B/usr/local/i586-linux/bin/ -B/usr/local/i586-linux/lib/ -isystem /usr/local/i586-linux/include -O2 -g -O2 ) works... no configure: error: installation or configuration problem: C compiler cannot create executables. make: *** [configure-target-libiberty] エラー 1 で止まってしまいました。 何か分かる方がいましたら、アドバイスをお願いします。 文字数制限のためにあまり詳しくかけなかったので、何か足りない点があればご指摘下さい。 [ホスト環境] CPU : Pen3 OS : Fedora core 3 gcc : バージョン 3.4.2 20041017

質問者が選んだベストアンサー

  • ベストアンサー
  • Lean
  • ベストアンサー率72% (435/603)
回答No.2

クロスコンパイルは、コンパイルを実行するプラットフォームとはOSもしくはCPUアーキテクチャが異なるプラットフォーム用のプログラムをコンパイルして作成する(x86向けLinux上でPPC向けLinux用のプログラムをコンパイルする)事ですから、今回のような同じアーキテクチャ(x86)の場合、クロスコンパイル環境を作成する必要はないのでは? i586用バイナリを作成したいなら、gccの最適化オプション(-march=cpu-type、-mtune=cpu-type、-mcpu=cpu-typeあたりでcpu-typeにi586を指定)を指定かな。 カーネルだとカーネルパラメータでProcessor family(Processor type and features)のようなのがあると思うから、そこでi586に該当するものを設定すればいいのではないかと思います。

その他の回答 (1)

回答No.1

クロスコンパイル? そんなもの必要? make時のオプションを付ければ 良いだけのように思いますが 普段はわざわざ別PCでカーネルのmakeなんてしないから 確証はないけどmakeでオプション指定すればいいだけ だと思います。

________j_
質問者

お礼

makeのオプションで出来るのですか…、ただ未熟なのか、 > makeでオプション指定すればいいだけ のオプションの指定の仕方が見つけられませんでした。 もう少し調査してみます。 カーネルのコンパイルは別としてクロスコンパイルは今後のためになりそうなので、一応このまま構築作業をしてみます。

関連するQ&A