3.9.1-landiskクロスコンパイル

 カーネルのクロスコンパイルの本番です。
 make oldconfigは無事できたのですが、(ここはクロスは関係ない)本番のコンパイルができません。

# make ARCH=sh CROSS_COMPILE=sh4-linux-gnu- zImage modules
make: sh4-linux-gnu-gcc: Command not found
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
make[1]: `include/generated/machtypes.h' is up to date.
  CC      kernel/bounds.s
/bin/sh: 1: sh4-linux-gnu-gcc: not found
make[1]: *** [kernel/bounds.s] Error 127
make: *** [prepare0] Error 2

 色々変わった事があるみたい。
 クロスコンパイラのパッケージは入れているので、

# find /usr/bin -name sh4-linux-gnu-*
/usr/bin/sh4-linux-gnu-gcov-4.7
/usr/bin/sh4-linux-gnu-objcopy
/usr/bin/sh4-linux-gnu-ranlib
/usr/bin/sh4-linux-gnu-strip
/usr/bin/sh4-linux-gnu-addr2line
/usr/bin/sh4-linux-gnu-gprof
/usr/bin/sh4-linux-gnu-elfedit
/usr/bin/sh4-linux-gnu-readelf
/usr/bin/sh4-linux-gnu-strings
/usr/bin/sh4-linux-gnu-nm
/usr/bin/sh4-linux-gnu-objdump
/usr/bin/sh4-linux-gnu-c++filt
/usr/bin/sh4-linux-gnu-gcc-ranlib-4.7
/usr/bin/sh4-linux-gnu-ld
/usr/bin/sh4-linux-gnu-gcc-4.7
/usr/bin/sh4-linux-gnu-gcc-nm-4.7
/usr/bin/sh4-linux-gnu-cpp-4.7
/usr/bin/sh4-linux-gnu-as
/usr/bin/sh4-linux-gnu-ar
/usr/bin/sh4-linux-gnu-gcc-ar-4.7
/usr/bin/sh4-linux-gnu-size
/usr/bin/sh4-linux-gnu-ld.bfd

 こんな風になっています。
 kernel sourceはmultiarch対応ではないから?素直に?
ln -s /usr/bin/sh4-linux-gnu-gcc-4.7 /usr/bin/sh4-linux-gnu-gcc
して使ってみます。
 今度はこんな風に止まりました。

  BC      kernel/timeconst.h
/bin/sh: 1: bc: not found
make[1]: *** [kernel/timeconst.h] Error 127
make: *** [kernel] Error 2

 bcってこれの事みたい。http://kazmax.zpp.jp/cmd/b/bc.1.html
 今までカーネルに関係あるなんて知りませんでした。存在についてはウル覚えで、どこかで説明を読んだことあるかな〜って感じです。
 apt-get install bc
作業続行〜クロスコンパイル早いです。また止まった!

  CC      drivers/leds/leds-landisk.o
drivers/leds/leds-landisk.c:135:22: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'landisk_led_probe'
drivers/leds/leds-landisk.c:159:22: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'landisk_led_remove'
drivers/leds/leds-landisk.c:176:17: error: 'landisk_led_probe' undeclared here (not in a function)
drivers/leds/leds-landisk.c:177:8: error: implicit declaration of function '__devexit_p' [-Werror=implicit-function-declaration]
drivers/leds/leds-landisk.c:177:30: error: 'landisk_led_remove' undeclared here (not in a function)
drivers/leds/leds-landisk.c: In function 'landisk_led_init':
drivers/leds/leds-landisk.c:225:8: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
cc1: some warnings being treated as errors
make[2]: *** [drivers/leds/leds-landisk.o] Error 1
make[1]: *** [drivers/leds] Error 2
make: *** [drivers] Error 2

leds-landisk.cの__devinit,__devexitと__devexit_pがまずいみたい。単純に無くしていいみたい。更に続行〜
 洗濯物干していたらコンパイル終わってました。(早)
make ARCH=sh CROSS_COMPILE=sh4-linux-gnu- INSTALL_MOD_PATH=../modules-3.9.1-landisk modules_install

  DEPMOD  3.9.1-landisk-dirty

が気になります。fileをcommitせずビルドすると-dirtyが付くらしい。
http://htc-linux.org/wiki/index.php?title=AdvancedGitGuide
 コミットしてからclean,build、でもdirty消えない。
5/11午後訂正:コミットしてなかった(理解してなかった。tagを付けたら分かった)
 どうしても 3.9.1-landisk+になってしまうみたい。
 +をなくす方法ご存じの方教えて下さい。終わり。