FreeBSD 4.8-RELEASE libm.so

うむ、調子良くないね。

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/msunlibm.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 だ。わっかるかな? わっかんねーだろー なー。


Generated with mkdiary.rb
yuuji@gentei.org
Fingerprint16 = FF F9 FF CC E0 FE 5C F7 19 97 28 24 EC 5D 39 BA
HIROSE Yuuji - ASTROLOGY / BIKE / EPO / GUEST BOOK / YaTeX [Tweet]