今更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系列へのポーティングの注意点: - http://developer.apple.com/Mac/library/releasenotes/DeveloperTools/GCC40PortingReleaseNotes/Articles/PortingToGCC.html - http://developer.apple.com/jp/releasenotes/DeveloperTools/GCC40PortingReleaseNotes/Articles/PortingToGCC.html 肝心のGCC-4.0.x系列でのChange情報 - http://gcc.gnu.org/gcc-4.0/changes.html ちなみにgcc-4.1, 4.2 系列のChange情報も確認したが、それらしき情報は載っていなかった。 Apple Developerセンターの人達はどこでこの情報GETしたのだろうか・・・。