home Glamenv-Septzen(ぐらめぬ・ぜぷつぇん)(archive)

日記/2009/12/05/gcc4.x:"error: static declaration of ‘xxxx’ follows non-static declaration"

作成日: 2009-12-05 20:25:45   /   last updated at: 2009-12-05 20:35:23
カテゴリ: C言語 

今更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したのだろうか・・・。

original url: https://www.glamenv-septzen.net/view/511