• 締切済み

Debianカーネル再構築の際のコンパイルエラーの対処方法について

現在、Debianカーネル2.6.16(Sarge)を用いています。 新しく2.6.20にカーネルの再構築を行おうとしております。 カーネルのコンパイルを行うと、下記のようなエラーが発生して、進まなくなってしまいました。 エラーの対応方法についてご教授頂ければと思います。 よろしくお願いします。 ===== /usr/src/linux-2.6.20# make vmlinux CHK include/linux/version.h CHK include/linux/utsrelease.h CHK include/linux/compile.h GEN .version CHK include/linux/compile.h UPD include/linux/compile.h CC init/version.o LD init/built-in.o LD .tmp_vmlinux1 local symbol 0: discarded in section `.exit.data' from drivers/built-in.o local symbol 1: discarded in section `.exit.data' from drivers/built-in.o local symbol 2: discarded in section `.exit.data' from drivers/built-in.o local symbol 3: discarded in section `.exit.data' from drivers/built-in.o make: *** [.tmp_vmlinux1] Error 1

みんなの回答

  • tthe_mine
  • ベストアンサー率46% (19/41)
回答No.3

rules の331行目あたりが powerpc arch の処理になってますね。 make-kpkg の --subarch 引数か KPKG_SUBARCH 環境変数に、 apus prpmc chrp mbx pmac prep Amiga APUs CHRP MBX PReP chrp-rs6k nubus から適当な sub arch を選んで設定してください。 Mac だったら pmac かな。

tanabata777
質問者

補足

アドバイス頂いた通りに--subarch=pmacでmake-kpkgしました。 以下のようなエラーが出力されてしまいます。 drivers/mtd/mtdconcat.c:182: warning: comparison of distinct pointer types lacks a cast drivers/mtd/maps/physmap.c:172:2: warning: #warning using PHYSMAP compat code local symbol 0: discarded in section `.exit.data' from drivers/built-in.o local symbol 1: discarded in section `.exit.data' from drivers/built-in.o local symbol 2: discarded in section `.exit.data' from drivers/built-in.o local symbol 3: discarded in section `.exit.data' from drivers/built-in.o make[1]: *** [.tmp_vmlinux1] Error 1 make: *** [stamp-build] Error 2

  • tthe_mine
  • ベストアンサー率46% (19/41)
回答No.2

dpkg-architecture コマンドを実行すると、どのように表示されますか? /usr/share/kernel-package/rules を読むと KPKG_ARCH 環境変数が指定されていないとすると、 dpkg-architecture コマンドを実行した結果でてくる DEB_HOST_GNU_CPU によって処理が切り分けられているようです。

tanabata777
質問者

補足

dpkg-architecture コマンドを実行すると以下のような出力結果となります。 $ dpkg-architecture DEB_BUILD_ARCH=powerpc DEB_BUILD_GNU_CPU=powerpc DEB_BUILD_GNU_SYSTEM=linux DEB_BUILD_GNU_TYPE=powerpc-linux DEB_HOST_ARCH=powerpc DEB_HOST_GNU_CPU=powerpc DEB_HOST_GNU_SYSTEM=linux DEB_HOST_GNU_TYPE=powerpc-linux CPUはi386系ではなく、PowerPC系です。 コンパイルを実行する前に"export ARCH=ppc"と環境変数は指定しております。 その他何かありますでしょうか?

  • tthe_mine
  • ベストアンサー率46% (19/41)
回答No.1

gccいくつ使ってますか? あと、 make-kpkg つかったほうが楽かもしれません。

tanabata777
質問者

補足

まず先にカーネルは2.6.18をターゲットに変更しました。 gccのバージョンは3.3.5です。 $ gcc -v gcc バージョン 3.3.5 (Debian 1:3.3.5-13) make-kpkgを行うと下記のようなエラーが出力されてうまくいきません。 # make-kpkg --revision=2.6.18 kernel-image /usr/share/kernel-package/rules:1637: *** Error. I do not know where the kernel image goes to [kimagedest undefined] The usual case for this is that I could not determine which arch or subarch tihs machine belongs to. Please specify a subarch, and try again.. Stop.

関連するQ&A