もじもじです。 色々わかりました。 ご教授頂いた皆様、有り難うございました。
まず、postfix(ports) のパッチに +#if (__FreeBSD_version >= 702104 && __FreeBSD_version <= 800000) \ こんな行があるのを発見。というか、以前出てました。 これ、703000 では無いかと思う、今日この頃。 いや、702104 でももっているのでしょうが、まともに動かな いのでは、と。Bus error だし。 ところが、これを 703000 にすると、今度はコンフリクトが・・・ http://d.hatena.ne.jp/lipbalm/20100327/1269622446 では、7.3 でコンフリクトされた方の解決方法が載ってます。 色々調べている時、このページを見ましたが、「あっぶねーなー」 と思って見てましたが、いざ、こちらもその状態になり納得。 HAS_CLOSEFROM じゃないから自前の closefrom を使おうとす るんですが、これの戻り値が int。 って事は、postfix の各場所の使用箇所も int を念頭に作ら れてる。 でも、/usr/include/unistd.h では void 宣言。 どっち直すって、/usr/include/unistd.h かなぁ(^^; これは、結構あっちこっちで騒がれているよう・・・ 結論。 誰か、7.2-R 702104 以降の closefrom を正しく動くようにして・・・ 現在、コンパイルがうまく通って実行も出来るようになりまし た。システムへのセキュリティパッチが出てこない事を祈りま す(笑)。 皆様、有り難うございました。 追伸: いま、別の人間が同じ 702106 を使っていたので nm... を 実行してもらいました。そしたら closefrom が無かったで す。なんてこったい、と思って lib.so.7 をそのマシンで コンパイルして貰って、その lib.so.7 を nm して貰ったら・・・ 入ってます。がびーん。私が libc をリコンパイルしたのが 悪いの!?(T_T) Fri, 16 Apr 2010 11:32:18 +0900 に、 もじもじ <mojimoji...@yahoo.co.jp> さんは書きました: > もじもじと申します。 > > Fri, 16 Apr 2010 10:32:20 +0900 に、 > もじもじ <mojimoji...@yahoo.co.jp> さんは書きました: > > > > % grep __FreeBSD_version /usr/include/sys/param.h > > > > # grep __FreeBSD_version /usr/include/sys/param.h > > * __FreeBSD_version numbers are documented in the Porter's Handbook. > > #undef __FreeBSD_version > > #define __FreeBSD_version 702106 /* Master, propagated to newvers */ > > > > > の実行結果はどうなりますか? > > > もし __FreeBSD_version が 702104 以上の値になっているなら、ユーザーランド > > > が closefrom(2) 導入後のものになっているのだと思います。あと、 > > > > みたいです・・・どこでどうなったのやら・・・ > > と思ったら・・・ > http://www.freebsd.org/doc/en/books/porters-handbook/freebsd-versions.html > によるとソースツリーは 7.2 だけど、closefrom が入ってる・・・ > > これはどう解釈したらいいのでしょうか? > > -- > もじもじ <mojimoji...@yahoo.co.jp> -- もじもじ <mojimoji...@yahoo.co.jp>