[Gauche-devel-jp] Re: 動的リンクの順序

Back to archive index

Kimura Fuyuki fuyuk****@nigre*****
2004年 2月 12日 (木) 17:29:04 JST


At Thu, 12 Feb 2004 15:14:08 +0900,
Kimura Fuyuki <fuyuk****@nigre*****> wrote:
> 
> これはGaucheの問題というより動的リンクの問題なのかもしれませんが、行き
> 詰まってしまったので知恵を貸してください。

どうやら手元の環境(FreeBSD/gcc-3.3.3)に問題がありそうな気配です。具体
的に言うと、たとえばspigot.cに

double floor(double d){return 0;}

みたいのがつっこんであったとしても、なぜか正しい答が出てしまいます。
(少なくともDebian woodyではそんなことない)

さらに、

int puts(const char *s){}

を入れておくと、putsはこちらのほうが使われます。どういうシンボル解決を
してるんだろう。

リンク状況はこんな感じ。

$ ldd ./spigot.so
./spigot.so:
        libgauche.so => /opt/lib/gauche/0.7.4.1/i386-unknown-freebsd5.2/libgauche.so (0x28149000)
        libcrypt.so.2 => /lib/libcrypt.so.2 (0x281ef000)
        libutil.so.4 => /lib/libutil.so.4 (0x28208000)
        libm.so.2 => /lib/libm.so.2 (0x28214000)

(疲れた。あとでまた考えよう…)

*

ついでに発見したこと。Scm_DynLoadのexport引数はどう見ても使われてない
気がします。

-- 
木村 冬樹



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