これが分からなくて散々悩んだ。
configure ものはどうやって判定していて、判定法はどこに書いてあるのかちっとも分からん。
ports で突っ込んだ heimdal も OS の src tree に入ってる heimdal もほとんど同一なのに ports からインストールしておかないとこのシステムには kerberos がないと断定されてしまっていたわけだが、やっと ports と /usr/lib の違いを発見。
ports 版はちゃんと shared library になっていて、何をリンクしているかが分かるんだが /usr/lib 版はそれがない。 ldd(1) で見るとこんな感じ
xxxxxxx-afs1# ldd lib/libkrb5.so heimdal/lib/libkrb5.so lib/libkrb5.so: heimdal/lib/libkrb5.so: libcrypto.so.3 => /lib/libcrypto.so.3 (0x2818e000) libasn1.so.6 => /usr/heimdal/lib/libasn1.so.6 (0x2829c000) libroken.so.16 => /usr/heimdal/lib/libroken.so.16 (0x282c2000) libcrypt.so.2 => /lib/libcrypt.so.2 (0x282d0000) libc.so.5 => /lib/libc.so.5 (0x28076000) libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x282e9000)
configure は -lroken をつけずにチェックを回すんだが heimdal 版なら勝手に見つかるけところを /usr/lib 版だと undefined reference で終わっちゃう。じゃあ /usr/lib 版の roken でいいかというと微妙に関数足らないんだけど……。 libc に同種の関数があるのは省いたな……
うーむ、 -lkafs5 もつけて欲しいんだが見つけてくれてないのかな?名前か?名前が悪いんか? libkafs.so -> libkafs5.so な symlink 作って逃げたり(ょゎ
む、 header ない…(:_:)
できた〜〜〜〜〜〜〜〜。\(^^)/でも、疲れた………(;_;)
[referer: [an error occurred while processing this directive]]