[Gauche-devel-jp] Re: 動的リンカのシンボル解決

Back to archive index

Kimura Fuyuki fuyuk****@nigre*****
2004年 2月 17日 (火) 10:09:38 JST


もし「グローバルなシンボルはあとからリンクしたものが優先される」のが普
通だとしたら、次も0になるべきだと思いませんか?

/* cc a.c -lm; ./a.out; echo $? */
double sin(double d) { return 1; }
int main(void) { return sin(0); }

が、まさかそんなことはないわけで、ちゃんと自分のところで定義したものが
優先されます。DSOの製作者も同じことを期待してるはずなんですね。つまり

「シンボル解決は近いほうから遠いほうへ」

これが常識的なところだと思うんですが、どうでしょう?

それと、私はないものねだりをしているつもりはなくて、それなりに目当てが
あって騒いでいます。というのは、

  1. パターンBからAへの移行がなぜ生じているのか知りたい。

  2. Aでもやっていかれる道があるのかどうか知りたい。

上に納得のいく答が得られなかった場合は、

  3. 流れを逆転させたい。

*

そうこうするうちにGauche-uuidはほとんどできあがってしまいました。
FreeBSD 5.xユーザー限定でコアの吐きっぷりをお楽しみください。:)

http://www.nigredo.org/fuyuki/Gauche-uuid-0.1.tar.gz

(IRIXにもuuid(3)はあるようなので、そっちでも吐くかもしれません。ファイ
ルシステムまわりで使うらしいんですよね、uuid)

*

FreeBSDでは"Per object ELF Prebinding support"などという計画が進行中。
期待していのかなんなのか。

http://www.freebsd.org/releases/5.3R/todo.html

-- 
木村 冬樹



Gauche-devel-jp メーリングリストの案内
Back to archive index