OpenBSDで日本語環境設定at UNIXOpenBSDで日本語環境設定 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト100:名無しさん@お腹いっぱい。 02/12/31 23:10 スマソ、i386以外のarchも対応したつもりだったのですが、PC/AT機しか 自由にできるマシンが身の回りに無いので、buildと動作確認はi386のみです。 # sparc64かぁ、ansi.h/int_types.hあたりでなんかやっちゃったかなぁ。。。 修正個所があれば、patchをここにはっつけてもらえれば更新しますんで、どうぞよろしうに。 どーしても動かんようであれば、kurati氏のとこのpatchも3.2用に更新されてるので、 そちらを試してみてください。 # ただしkurati氏のpatchはもう長いこと誰もメンテしてない # anoncvs@citrus.bsdclub.orgの方のソースコードがベースみたい。 # 漏れのはいちおー最新のNetBSD/Citrusベースです。動きゃどっちでも良いけど。 動作確認は、↓を参考に、xpg4dl/testモジュールを拾って http://mail-index.netbsd.org/tech-userlevel/2000/03/30/0001.html Makefileをごにょごにょして出力結果を 塩兄氏の日記でチェックしてみてください。 101:名無しさん@Emacs 03/01/01 13:54 >>98 俺もあぬまり詳しくないけど。どういう目的かというと、ABI を保つためでしょう。例えば sys/times.h 中で、times(3) という関数は __BEGIN_DECLS #ifdef __LIBC12_SOURCE__ clock_t times __P((struct tms *)); #else clock_t times __P((struct tms *)) __RENAME(__times13); #endif __END_DECLS こういう風に宣言されています。ここで __LIBC12_SOURCE__ は旧版で、times(3) の ABI が変わった(?)ときに加わったのが __RENAME(__times13) の方。新しい環境で times(3) を使うと後者が適用されると思います。 で、__RENAME(__times13) とは、コンパイル時に、シンボル times を __times13 にすり替えるのだと思います。ここで、なんでかっていうのはうまく説明できませんけど、#define times __times13 じゃ整合がとれなくなったりするからでしょうか。__RENAME の振る舞いは printf '#include <sys/cdefs.h>\n__RENAME(foo)\n' | cc -E - | tail -1 printf '#undef __ELF__\n#include <sys/cdefs.h>\n__RENAME(foo)\n' | cc -E - | tail -1 printf '#include <sys/times.h>\ntimes(foo)\n' | cc -E - | grep times nm -g /usr/lib/libc.a | grep times とかやれば分かるんじゃないでしょうか。(というか、わたしもすぐ分からなくなるから↑こんな風にしています。) 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch