[過去ログ]
OpenBSDで日本語環境設定 (415レス)
OpenBSDで日本語環境設定 http://mevius.5ch.net/test/read.cgi/unix/985675477/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
98: 名無しさん@お腹いっぱい。 [sage] 02/12/24 19:14 厨でもうしわけないんだけど、_RENAME マクロってどういう役割なの? シンボルの頭に "_" を付けたり付けなかったりするものらしい、 というのは分かるんだけど、それがどういう意味なのか理解できない。 誰か解説して or 情報のポインタ、ぷりーづ。 http://mevius.5ch.net/test/read.cgi/unix/985675477/98
101: 名無しさん@Emacs [sage] 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 とかやれば分かるんじゃないでしょうか。(というか、わたしもすぐ分からなくなるから↑こんな風にしています。) http://mevius.5ch.net/test/read.cgi/unix/985675477/101
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.018s