今更Embedded UNIX vol.6の特集記事を参考に、linux kernel-2.6.0をビルドしようとするも・・・
... HOSTCC scripts/fixdep HOSTCC scripts/kconfig/conf.o HOSTCC scripts/kconfig/mconf.o /home/msakamoto/in_vitro/linux-2.6.0/scripts/kconfig/mconf.c:91: error: static declaration of ‘current_menu’ follows non-static declaration /home/msakamoto/in_vitro/linux-2.6.0/scripts/kconfig/lkc.h:63: error: previous declaration of ‘current_menu’ was here make[2]: *** [scripts/kconfig/mconf.o] エラー 1 make[1]: *** [allnoconfig] エラー 2 make: *** [allnoconfig] エラー 2
なんというか、設定ツールのビルドの時点でエラーになる。
暫くgoogleをさまよった結果、GCC-4.0になってから、グローバルシンボルと同じ名前のstaticシンボルを使うとエラーにするように「なった」っぽい。以前は最後に宣言されたのを尊重していたのだけれど、gcc-4.0になってエラーで止めるようになったとのこと。
例により苛立たされたのは、この情報が何故かAppleのDeveloperセンターのページに載っていて、肝心のGCC-4系列のChange情報に載っていなかった点。
Apple Developer センターでの、gcc 3.x系列から4.x系列へのポーティングの注意点:
肝心のGCC-4.0.x系列でのChange情報
ちなみにgcc-4.1, 4.2 系列のChange情報も確認したが、それらしき情報は載っていなかった。
Apple Developerセンターの人達はどこでこの情報GETしたのだろうか・・・。
コメント