591 :
root▲ ★:
ちと、ひとつ質問です。
ソースを見ると、
#if APR_HAS_THREADS
...
#endif
などとなっていますが、
これは read.cgi バイナリが APR_HAS_THREADS がある時とない時で、
違うものになる、ということなのかしら。
592 :
動け動けウゴウゴ2ちゃんねる:2006/12/10(日) 19:24:03 ID:VIMYb3UP0
>>591 コンパイルする時にどちらを生成するかじゃないの?
593 :
動け動けウゴウゴ2ちゃんねる:2006/12/10(日) 19:30:08 ID:VIMYb3UP0
ああ、ちょっと文章の解釈間違えてたかも
>>591 多分あなたが思ってる通りだと思います
ようはバイナリ生成時にAPR_HAS_THREADSが定義されてるかされてないかによって
#ifと#endifの間の行が評価されるかされないかが決まるってことですね
当たり前じゃん
>>591 そういうことですね.worker MPM に入れるやつは,apr.h を見て
#define APR_HAS_THREAD 1
な鯖でビルドしてもらうということで(その #if...#endif を入れないと,
#define APR_HAS_THREAD 0 な環境でのビルドでエラーになってしまう).
596 :
root▲ ★:2006/12/10(日) 22:26:19 ID:???0 BE:2280555-PLT(20123)
>>595 了解です。
APR_HAS_THREAD なサーバかどうかで、
バイナリ互換がなくなるという認識でいいのかしら。
ちなみに 2ch のApache 2.2 な掲示板サーバは APR_HAS_THREAD が 1 なので、
現在の作り方で、今のところは ok と。
>>596 >APR_HAS_THREAD なサーバかどうかで、
>バイナリ互換がなくなるという認識でいいのかしら。
基本的にはそうですね.もうちょっと詳しく述べると
・ !APR_HAS_THREAD な環境でビルドしたバイナリは,prefork MPM で使う限り
!APR_HAS_THREAD, APR_HAS_THREAD どちらの環境でも使える(worker MPM では unsafe).
・ APR_HAS_THREAD な環境でビルドしたバイナリは,APR_HAS_THREAD な環境でのみ
使える(prefork MPM でも Ok).!APR_HAS_THREAD な環境では dlopen() の
時点でシンボルがないとかいうエラーになるはず.