RasPi向けのクロスコンパイル環境作りを、ユーザー会本のとおりにやっていたらエラーでずっこけて悩んだのでメモ。いつまでも本と同じバージョンとかでできるわけではないので、バージョンの違いによるバグがいろいろ出てくるようです。
今回はcrosstool-ng-1.19.0で、Kernel 3.10.2を選択し、gccはlinaro-4.8-2013.06を選択。ct-ng buildすると、以下の通りpass-2 core C compilerのところでエラーになりました。
[INFO ] Installing pass-2 core C compiler [ERROR] /home/akkie/work/build/.build/src/gcc-linaro-4.8-2013.06-1/gcc/optabs.h:24:25: fatal error: insn-opinit.h: No such file or directory [ERROR] /home/akkie/work/build/.build/src/gcc-linaro-4.8-2013.06-1/gcc/optabs.h:24:25: fatal error: insn-opinit.h: No such file or directory [ERROR] make[2]: *** [lra-constraints.o] Error 1 [ERROR] make[2]: *** [lra-eliminations.o] Error 1 [ERROR] make[1]: *** [all-gcc] Error 2
別のマシンでビルドした時は通ったので「??」となりましたが、解決法は以下のURLにありました。
http://sourceware.org/ml/crossgcc/2013-06/msg00036.html
insn-opinit.hというファイルがないという内容ですが、どうもMakefileでビルド順の指定が良くないらしく、パラレルでビルドされる環境では失敗する場合があるとのこと。なるほど会社のリッチなサーバーで作ったのがリッチすぎたのかしら(Xeon X5570を2発のブレード)。
${HOME}/work/build/.build/src/gcc-linaro-4.8-2013.06-1/gcc/Makefile.in を、URLのパッチの指示通り書き換えて再度ct-ng buildするととおります。
というわけで(どういうわけで?)いつものリンクもペタペタしておきますね。
Raspberry Pi〔実用〕入門 ~手のひらサイズのARM/Linuxコンピュータを満喫! (Software Design plus)
- 作者: Japanese Raspberry Pi Users Group,太田昌文,長南浩,大内明,大塚惠喜,青島英希,池田百合子,蒲谷直樹,古村圭加
- 出版社/メーカー: 技術評論社
- 発売日: 2013/07/06
- メディア: 大型本
- この商品を含むブログ (12件) を見る
Raspberry Pi[実用]入門――手のひらサイズのARM/Linuxコンピュータを満喫! (Software Design plus)
- 作者: Japanese Raspberry Pi Users Group
- 出版社/メーカー: 技術評論社
- 発売日: 2013/08/09
- メディア: Kindle版
- この商品を含むブログを見る
ちなみに、gccでlinaro4.7を選んでも、なんかよくわからないけれどエラーになっていました。うーん