[Anthy-dev 2800] uim: 公開シンボル

Back to archive index

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*****



Anthy-dev メーリングリストの案内
Back to archive index