externって何のためにあるんですか?
多重定義でエラーにしてくれないなら意味がないように思いますが。