実行時に必要になるオブジェクトやリソースがリンクされないんだけど…。

public static void main(String[] args) {
Calendar.getInstance();
}

これがエラーになるんだよね。どのカレンダー実装を使うかは
実行時に判断されるため、リソースオブジェクトがリンク時には
リンクされないのだ。

ar x libgcj.a Calendar.o

として、リソースオブジェクトを取り出して、

gcj --main=Hello -o Hello.exe Hello.java Calendar.o

のように直接リソースオブジェクトを指定すれば、正しくリンクされて
きちんと動作する。他にも Input_SJIS.o や Output_SJIS.o などの
文字コードコンバート系 オブジェクトもリンクされないので、
http://www.thisiscool.com/gcc33_mingw.htm にある
バイナリでは、デフォルトでコンソールに日本語を表示することができない。

Input_SJIS.o などをリンクするためには、他から静的に参照されてればいいので、
IOConverter.java などで new Input_SJIS(); などとしておけば良い。
そうすれば、リンク時に Input_SJIS.o が必要だということが分かるから、
ちゃんと Input_SJIS.o がリンクされて日本語が通る。

そのうち、構成しなおした libgcj.a でもアップするか…。