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

[debian-devel:14821] Re: OUTPUT_CHARSET はまだ必要 ?



At Mon, 14 Jan 2002 21:07:27 +0900,
Tomohiro KUBOTA wrote:
> LANG=ja_JP.eucJP
> OUTPUT_CHARSET=
> 
> な状態で、gcc などが出すメッセージが読めません。
> たとえば、
> 
> $ LANG=ja_JP.eucJP OUTPUT_CHARSET= gcc-2.95 hogehoge
> gcc-2.95: hogehoge: ??????????????????????
> gcc-2.95: No input files
> $ LANG=ja_JP.eucJP OUTPUT_CHARSET=EUCJP gcc-2.95 hogehoge
> gcc-2.95: hogehoge: そのようなファイルやディレクトリはありません
> gcc-2.95: No input files
> 
> という具合です。
> これはどうすれば直るのでしょうか。
> (もう Woody には間に合わない?)
>
> ほかにも、cpp-2.95 が同じ症状です。

gcc 3.0 (debian), 3.1(cvs) では fix されています。

	gotom@celesta> gcc-3.0 hogehoge
	gcc-3.0: hogehoge: そのようなファイルやディレクトリはありません
	gcc-3.0: No input files

	gotom@celesta> ./gcc -v
	gcc バージョン 3.1 20011230 (experimental)
	
	gotom@celesta> ./gcc hogehoge
	gcc: hogehoge: そのようなファイルやディレクトリはありません
	gcc: no input files

…ではマズイ気もしてきました。
OUTPUT_CHARSET はリリースまでには消したい環境変数ですし、
gcc-2.95 は現在の Debian のメインとなっている gcc ですし。

問題は LC_MESSAGE と LC_CTYPE を同時に設定しないといけない
わけですが、LC_CTYPE の設定によって、関数や動作に影響が出るか
どうか確認しなければならないからです。
make 時に MULTIBYTE_CHARS を設定すると、setlocale(LC_CTYPE, "");
するようになるようですが、gcc/config/linux.h に

	/* GNU/Linux uses ctype from glibc.a. I am not sure how complete it is.
	   For now, we play safe. It may change later. */
	
	#if 0
	#undef MULTIBYTE_CHARS
	#define MULTIBYTE_CHARS 1
	#endif

となっています。しかし、ここを 1 にするとコンパイルに失敗してしまいます。
実際問題、どうしたものか困ったところです。
現状では少なくとも upstream で確認できていないものを
on にするのは厳しい感じはします。

残念ながら woody でも language-env などで OUTPUT_CHARSET=EUC-JP を
設定するのは、いたしかたないかもしれません。
# できればとりたいところですが。

-- gotom