포럼: 도움 (Thread #21562)

0.12.31 でのコンパイルエラー (2009-02-05 18:02 by Anonymous #41677)

red hatのapache2.2.4で0.12.31をコンパイルしたとき、エラーとなってしまいました。

/usr/local/test/build-1/libtool --silent --mode=compile gcc -fPIC -g -O2 -pthread -DLINUX=2
-D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I. -I/usr/local/test/include/apr-1 -I/usr/
local/test/include/apr-1 -c -o test/serf_get.lo test/serf_get.c && touch test/serf_get.lo
/usr/local/test/build-1/libtool --silent --mode=link gcc -static -o test/serf_get libserf-0
.la test/serf_get.lo /usr/local/test/lib/libaprutil-1.la -lexpat -liconv /usr/local/test/li
b/libapr-1.la -luuid -lrt -lcrypt -lpthread -ldl -lz -lssl -lcrypto
./.libs/libserf-0.a(ssl_buckets.o)(.text+0x1f): In function `bio_bucket_read':
buckets/ssl_buckets.c:190: undefined reference to `BIO_clear_flags'
./.libs/libserf-0.a(ssl_buckets.o)(.text+0x7d):buckets/ssl_buckets.c:206: undefined referenc
e to `BIO_set_flags'
./.libs/libserf-0.a(ssl_buckets.o)(.text+0xbe): In function `bio_bucket_write':
buckets/ssl_buckets.c:223: undefined reference to `BIO_clear_flags'
./.libs/libserf-0.a(ssl_buckets.o)(.text+0x10f): In function `bio_file_read':
buckets/ssl_buckets.c:240: undefined reference to `BIO_clear_flags'
./.libs/libserf-0.a(ssl_buckets.o)(.text+0x15f):buckets/ssl_buckets.c:248: undefined referen
ce to `BIO_set_flags'
./.libs/libserf-0.a(ssl_buckets.o)(.text+0x192): In function `bio_file_write':
buckets/ssl_buckets.c:264: undefined reference to `BIO_clear_flags'
./.libs/libserf-0.a(ssl_buckets.o)(.text+0x572): In function `ssl_encrypt':
buckets/ssl_buckets.c:523: undefined reference to `BIO_test_flags'
./.libs/libserf-0.a(ssl_buckets.o)(.text+0x66d):buckets/ssl_buckets.c:523: undefined referen
ce to `BIO_test_flags'
./.libs/libserf-0.a(ssl_buckets.o)(.text+0xd19): In function `serf_bucket_ssl_create':
buckets/ssl_buckets.c:901: undefined reference to `SSL_CTX_set_client_cert_cb'
collect2: ld returned 1 exit status
make[2]: *** [test/serf_get] エラー 1
make[2]: Leaving directory `/usr/local/src/mod-chxj_0.12.31/src/serf'
make[1]: *** [serf/.libs/libserf-0.a] エラー 2
make[1]: Leaving directory `/usr/local/src/mod-chxj_0.12.31/src'
make: *** [all-recursive] エラー 1

2度、makeするとinstallできてしまうのですが、configtestをすると、

/usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_chxj.so
into server: /usr/local/apache2/modules/mod_chxj.so: undefined symbol: CRYPTO_num_locks

となります。何がいけないのでしょうか。

Reply to #41677×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: 0.12.31 でのコンパイルエラー (2009-02-05 18:14 by konn #41679)

投稿ありがとうございます。

mod_chxjのconfigureの欠陥ではありますが、、

エラーから察するに、opensslのライブラリが足りないのではないでしょうか。
apache2.2.4でsslが有効になっていない場合のエラーに見えます。


>2度、makeするとinstallできてしまうのですが、

これもmod_chxjのconfigure&makeの欠陥ではありますが、
エラー部分のコンパイルエラーは本体とは関係がないので、installできてしまってもmod_chxjとしては問題ないです。


とりあえずは、apache2.2.4のconfigureでsslを有効にしてみてください。すみません。

こちらでも、configureを修正したいと思いますが、
少々時間がかかりそうです。

申し訳ありません。
よろしくお願いします。



Reply to #41677

Reply to #41679×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: 0.12.31 でのコンパイルエラー (2009-02-06 10:24 by Anonymous #41700)

早々のご回答ありがとうございます。

コンパイルエラーに関しては了解しました。

sslは組み込んでいるのですが、何かこちらのやり方が
悪いのかもしれません。もう少し調べてみます。
Reply to #41677

Reply to #41700×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: 0.12.31 でのコンパイルエラー (2009-02-06 12:00 by konn #41702)

すみません。よろしくお願いします。

こちらでももう少し調べて見ます。

気のせいかもしれませんが、
コンパイル環境で-lsslが効いていないのと
実行環境で-lsslか-lcryptoが効いていない
感じがします。

LD_LIBRARY_PATH

に値を設定して起動してみるか、

/etc/ld.so.conf

に値を設定した後ldconfigするかしたら
もしかすると起動するかもしれません。

すみません。よろしくお願いいたします。
Reply to #41700

Reply to #41702×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: 0.12.31 でのコンパイルエラー (2009-02-12 14:46 by Anonymous #41822)

すいません、ようやく原因がわかり解決しました。

apache の configure で --enable-deflate を付けて、
deflate を有効にしていたのが原因でした。
--enable-deflate を外してコンパイルしなおしたところ
無事起動することができました。

お手数おかけしましてすいませんでした。
Reply to #41677

Reply to #41822×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: 0.12.31 でのコンパイルエラー (2009-02-13 19:52 by konn #41840)

ご連絡ありがとうございます!

お役に立てずに申し訳ありません。。

deflateを有効にすると問題が発生するとのことですが、
貴重な情報ありがとうございます!

こちらでも調べさせていただきたいと思います。

よろしくお願いします。
Reply to #41822

Reply to #41840×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login