もじもじです。

色々わかりました。
ご教授頂いた皆様、有り難うございました。

まず、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>

メールによる返信