[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:29155] Bug#JP/1459: can not compile ewb (on m68k) with jikes



At Mon, 9 Jul 2001 17:18:02 +0900,
Atsuhito Kohda wrote:
> > # gcj -o mkpdfmark --main=MkPDFmark MkPDFmark.java  Imkpdfmark.java
> > 
> > とやれば、各プラットフォーム毎のバイナリが作成できます。 
> 
> このバイナリ版の mkpdfmark で ewb-3.2/tools/mkpdfmark/sample.dat 
> を処理すると
> 
>   /Creator (\376\377\0\105\0\127\0\102)
>   /Author (\376\377\116\55\221\316\0\40\214\342)
> 
> のように半角(だと思うのですが)バックスラッシュが全角になる
> 気がするのですが違うでしょうか?

げげっ、言われてみれば...

ちょっと libgcj (gcc)のソースを覗いた感じでは、

gcc-3.0/libjava/gnu/gcj/convert/Unicode_to_JIS.cc

142  /* key: 0x5b */ 0x5b,
143  /* key: 0x5c */ 0x2140,
142  /* key: 0x5d */ 0x5d,

の部分のようです。円マークと明確に区別するために、大文字のバックスラッ
シュに変換するようにしているのでしょうね。

これは、実行時の Runtime の話なので、gcj -C でクラスファイルを生成した
場合には、問題ありません。実際に、gcj -C で *.class ファイルを生成し、
sample.dat に対して SUN の Java VMで実行した場合には、 SUN のjavac で
コンパイルした場合と同じ結果が得られました。

ついでに色々調べてみると、Kaffe でもそのままでは動かないことが判明しま
した。原因は、下記の2点です。

(1) Kaffe には、EUCJISというエンコーダが無い。(EUC_JPで代用する必要あ
    り)

(2)同じように、バックスラッシュの変換が正しく行われていない。

gcj の問題と Kaffe の(2)の問題は持ち帰り調査したいと思います。
ありがとうございました。

# ひょっとして、結論としては、JDKが提供されているプラットフォームで無
# いと動かないということですかね? ぐふぉ(喀血)

追伸:
control ファイルの Build-Depends 欄に libncurses-dev を加えておいて
下さい。これがないと build できませんでした;)

ではでは。
----
岡本隆史