[PHP-users 25147] Re: php-5.0.3.tar.gzで、maketが出来ません。

深海水草 VYG01106 @ nifty.com
2005年 3月 26日 (土) 19:05:44 JST


長谷です

こちらでははじめてになります、よろしくです。

> 「セグメント違反」はプログラム中でポインタが混乱し、プログ
> ラムで管理していないメモリ領域に書き込みを行おうとした結果
> です。

もっと正確にいうと、x86 系 CPU では必ず「セグメント」という
枠を作って、メモリ管理を行います(68系や PowerPC はそういう
概念がないと聴きます)。この「セグメント」は、kernel が
メモリが欲しい!と要求されたら、その分の枠を作って与えます。

これだけだと Real Mode と同じですが、現在の Protect Mode
では、更に「セグメント」に実行権というのが付与されます。

従って「枠をはみでた」場合と「存在するメモリだが、実行権
のないメモリにアクセスした」場合と、二通りのエラーが存在
します。Kernel が厳密に区別しているかどうかは分からない
ですが...。

> したがってこれは gcc のバグである可能性もあります。

そういう仕組みですので、まず最初はソフトウェア、この場合
は gcc なり make の不具合を疑うべきですが、

> 昔、メモリに問題のあるコンピュータで、カーネルをコンパイル
> したとき、「セグメント違反」が出たことがあります。
> もしバグが、他の環境で再現されなければ(コンパイルを再び行
> なったときに同じところで止まるのでなければ)

ということもあり得ます。

どのくらいのメモリを積んでいるか分かりませんが、私なら別の
環境を用意して再現するか試してみて、判断します。


-- 
長谷 <VYG01106 @ nifty.com>



PHP-users メーリングリストの案内