うむ、調子良くないね。
FreeBSD3時代のバイナリを lib/compat で動かすとき、
libcは /usr/lib/compat/libc.so.3 から持って来るんだが、libmは
/usr/lib/libm.so.2 になる。で、libmで __stderrp
というシンボルを参照するようになって、これが 4.8Rの libc で定義されてい
る。ということで、古いバイナリで libm を使っているものを動かすときは必ず
__stderrp の未定義エラーでこける。
で、4.8Rで __stderrp は、findfp.c で定義されているので、
libm.so にも、findfp.So をいれてしまえば一応解決する。
やり方。
make world しましょ。そしたら、
/usr/obj/usr/src/lib/msun に libm.a, libm.so
ができてるはず。これをいったん消す。さらに、findfp.So,
findfp.o をこのディレクトリにコピーしておこう。
findfpは、/usr/obj/usr/src/libc/ にある。
で、/usr/src/lib/msun
にって make -n とやる。すると、libm.* をせいせ
いするためのコマンドラインが出てくるので、こいつをマウスかなんかで
ドラッグしてカットバッファに記憶しておこう。そして、
/usr/obj/usr/src/lib/msue に戻ってそのコマンドラインを
ペースト。で、そこに findfp.So または findfp.o を追加して
「ぺし」っとリターンを押す。んで、また、/usr/src/lib/msue
に戻って make install だ。わっかるかな? わっかんねーだろー
なー。