YamaKen
yamak****@bp*****
2006年 1月 21日 (土) 08:17:58 JST
ヤマケンです。こんにちは。 今まで確認した事がなかったんですが、libuim_la_LDFLAGSで指定され ている-export-symbols-regexは意図したように動いていないようです。 少なくとも下請けがGNU ldの--retain-symbols-fileの場合には。 $ objdump -T libuim.so | egrep ' g .+ \.(data|text)' | grep -v ' uim_' 0000ef4c g DF .text 00000018 siod_gc_protect 00018718 g DF .text 0000005e is_setugid 0000d4d4 g DF .text 00000034 siod_gc_protect_stack 0000d508 g DF .text 00000026 siod_gc_unprotect_stack $ objdump -t libuim.a | egrep ' g .+ \.(data|text)' | grep -v ' uim_' 000024b4 g F .text 00000026 siod_gc_protect_stack 000024dc g F .text 00000019 siod_gc_unprotect_stack 00003bd4 g F .text 00000018 siod_gc_protect 000004a4 g F .text 0000004d is_setugid このうちis_setugidは特にまずいので、とりあえずuim_プリフィクスを 付けて回避しておきます。 残りの3つはuim独自にsiod_プリフィクスを付けたものなので、SIODを 組み込んでいるアプリでも衝突する事はないはずです。 現行のlibuimはこれでいいんですが、SigSchemeを組み込む場合はこの 機能を当てにしていたので'scm_'プリフィクスのオブジェクトがダダ漏 れになり、多くのScheme組み込みアプリで衝突しまくります。 軽く調べてみましたが、正しい対処法はすぐには判りませんでした。 r5rsブランチをマージするまでには何とかしようと思いますが、ひとま ず後回しにします。もしどなたか興味があったら調べて頂けると嬉しい です。 ------------------------------- ヤマケン yamak****@bp*****